- A+
现象
在ubuntu上编译内核时,apt-get source
时出现如下warning:
W: Download is performed unsandboxed as root as file '/var/cache/apt/archives/partial/samba-libs_2%3a4.5.8+dfsg-0ubuntu0.17.04.1_i386.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
解决方案
谷歌了下,ctrl c + ctrl v
的文章太多了。。最终亲测了askubuntu上的解决方案成功了。本文记录下,做个备份用。
通常apt使用用户_apt来下载软件包。在你的例子中,_apt没有对/var/cache/apt/archives/partial/或现有文件/var/cache/apt/archives/partial/samba-libs_2%3a4.5.8+dfsg-0ubuntu0.17.04.1_i386.deb的写权限,所以它以root身份下载了该文件。
确保 /var/cache/apt/archives/partial/ 以及它下面的所有内容都可用于 _apt,例如通过运行
点击查看代码
sudo chown -Rv _apt:root /var/cache/apt/archives/partial/ sudo chmod -Rv 700 /var/cache/apt/archives/partial/
修改完成后效果如下:
root case
从askubuntu社区的讨论看,该bug 1522675官方宣称已经修复了,实际上该问题一直存在。不过忽略与apt相关的 "W:..._apt ... "警告也行。这些warning是非致命的,而且在大多数情况下,你无法解决这个问题,不管有没有警告,你都会得到同样的结果。
apt 使用用户 _apt 下载软件包。似乎这是root 的用户根本无法完成名为 _apt 的用户所能做的事情。
显然,自从apt工具被改成使用_apt的沙盒式安全操作以来,大量的人在使用apt工具时遇到了麻烦。似乎在这个_apt的变化之后,一大堆东西都有问题,至今还没有完全修复。