以 E: 开头的错误消息到底是什么意思?我认为这与 Ubuntu-on-Windows 上的文件结构有关,但具体是什么呢?
The following package was automatically installed and is no longer required:
os-prober
Use 'apt-get autoremove' to remove it.
The following extra packages will be installed:
libxslt1.1
The following NEW packages will be installed:
libxslt1.1 xmlstarlet
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 435 kB of archives.
After this operation, 1023 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main libxslt1.1 amd64 1.1.28-2build1 [145 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ trusty/universe xmlstarlet amd64 1.5.0-1 [290 kB]
Fetched 435 kB in 3s (134 kB/s)
**E: Can not write log (Is /dev/pts mounted?) - openpty (2: No such file or directory)**
Selecting previously unselected package libxslt1.1:amd64.
(Reading database ... 28723 files and directories currently installed.)
Preparing to unpack .../libxslt1.1_1.1.28-2build1_amd64.deb ...
Unpacking libxslt1.1:amd64 (1.1.28-2build1) ...
Selecting previously unselected package xmlstarlet.
Preparing to unpack .../xmlstarlet_1.5.0-1_amd64.deb .
答案1
这意味着 Windows NT Linux 子系统不提供伪终端。在更改的根环境中安装软件包时,人们在原始 Ubuntu/Debian 中遇到同样的错误,因为这些环境尚未/dev
填充各种伪终端设备。在 Windows NT Linux 子系统中,它们不存在只是因为操作系统内核没有提供它们。
该消息实际上来自apt-get
命令,该dpkg
命令正在使用附加到伪终端的标准 I/O 调用该命令。 以下是发生此事件的源代码(该消息在 Ubuntu 16 中略有变化。不过,Windows NT Linux 子系统默认使用早期版本的 Ubuntu。)
进一步阅读
- LTSP 错误:无法写入日志,openpty() 失败(/dev/pts 未安装?)。Ubuntu 错误 #294403。规范。
- 阿纳托利·扎列茨基(2016-03-31)。伪终端. Windows 开发人员反馈。Microsoft 公司。
- termios 实现不完整。BashOnWindows 错误 #169。2016-04-13。微软公司。
- docker 安装失败 E: 无法写入日志(/dev/pts 是否已挂载?)。BashOnWindows 错误 #85。2016-04-08。微软公司。
- apt-get 无法写入日志,报告 openpty 错误。BashOnWindows 错误 #80。2016-04-08。微软公司。
- 乔纳森·德·博因·波拉德(2000 年)。在 Win32 中捕获控制台 I/O. 常见问题答案。
- https://news.ycombinator.com/item?id=11581935
- 如何让 apt-get install 不那么吵?