我在 Synaptic Manager 中更新后得到了它
我最近从 16.10 全新安装了 Ubuntu 17.04。
错误信息:-
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)
答案1
通常 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/
答案2
总结只需忽略与 apt 相关的“W: ... _apt ...”警告行。它们不是致命的,而且在大多数情况下您无法修复它,并且无论有没有警告,您都会得到相同的结果。
即使实施了 Florian Diesch 的出色回答,我仍然会收到此警告。当我尝试使用 下载源代码时apt-get source ...
,即使我尝试以 root 身份下载(例如使用sudo
或 )su
,也会收到此警告(Debian 10.4 和 apt 1.8.2.1)。
_apt
网络上充斥着关于此警告消息的问题,并提出了许多不同的解决方案。显然,自从 apt 工具被改为用于沙盒安全操作以来,大量用户在使用过程中遇到了麻烦。
似乎在_apt
做出这一改变之后,一大堆问题都还没有完全解决。
我们再来分解一下这个问题:
首先,带有前缀的 apt 结果行W:
仅警告。警告是指某些不正常的事情,但不会阻止程序继续运行。(參考文獻:Kusalananda)
正如 Florian 指出的那样,“apt 使用用户_apt
来下载软件包”。看来,在这种情况下,named 用户root
根本无法做 named 用户_apt
能做的事情。
部分解决方案(您确实不想使用的解决方案):
您必须确保您所在的文件夹(即,将放置源的位置)归 拥有_apt:root
。因此,如果您$ mkdir temp; sudo chown _apt:root temp; sudo -s
并且# cd temp; apt-get source ...
不会出现警告。
当然,完成后,您必须对这个基本文件夹赋予更合理的所有权,因为它由 _apt:root 拥有,这很奇怪。
有没有警告信息,结果是否相同?
# -- TEST 1: get source into folder owned by user ------------
$ mkdir temp1;
$ cd temp1; sudo apt-get source gnupg2 # gives warning message:
...
W: Download is performed unsandboxed as root as file 'gnupg2_2.2.12-1+deb10u1.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
# -- TEST 2: get source into folder owned by root ------------
$ cd ..; sudo -s
# mkdir temp2;
# cd temp2; apt-get source gnupg2 # gives warning message:
...
W: Download is performed unsandboxed as root as file 'gnupg2_2.2.12-1+deb10u1.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
# -- TEST 3: get source into folder owned by _apt:root -------
# cd ..
# mkdir temp3; chown _apt:root temp3
# cd temp3; apt-get source gnupg2 # no warning message now!
# == COMPARE the results ======================================
$ cd ..
$ sudo diff -r temp1 temp2 # no differences
$ sudo diff -r temp1 temp3 # no differences
因此,无论有没有警告,结果都是一样的!
我不得不开玩笑地补充说,易于这里讨论的是不是指的是最可怕的事情:高级持续性威胁。
我之前的回答是
...到目前为止,已经为我解决了这个问题,但是现在我发现这还不够:
修复此问题:
sudo chown -R _apt:root /var/lib/apt/lists
看。
这列表目录本身(而不仅仅是其内容)需要有所有者_易于。 (即,这是一个重要的文件分支,其默认根所有权失败!)
我可能在删除时出现了这个问题列表,然后按照其他地方的建议用 重新制作它
sudo mkdir lists; apt update
。此外,此解决方案可能与任何其他解决方案相辅相成,因为我首先尝试了很多其他的东西。
Debian 10.2 延伸。
# apt-get --version
apt 1.8.2 (amd64)
Supported modules:
*Ver: Standard .deb
*Pkg: Debian dpkg interface (Priority 30)
Pkg: Debian APT solver interface (Priority -1000)
Pkg: Debian APT planner interface (Priority -1000)
S.L: 'deb' Debian binary tree
S.L: 'deb-src' Debian source tree
Idx: Debian Source Index
Idx: Debian Package Index
Idx: Debian Translation Index
Idx: Debian dpkg status file
Idx: Debian deb file
Idx: Debian dsc file
Idx: Debian control file
Idx: EDSP scenario file
Idx: EIPP scenario file
答案3
我在 Debian Stretch(全新安装的 Xen VM)上也遇到了这个问题,结果发现是 sudo 的问题。
无法在机器上执行任何 sudo。
更准确地说,系统的根/
目录位于 700 (drwx------)。Achmod 755 /
已修复它。
答案4
使文件本身可由用户读取_apt
。例如:
chmod 777 ./pdfsam-visual_2.1.4_amd64.deb
看看文件本身的权限...
$ ls -l ./pdfsam-visual_2.1.4_amd64.deb
-r-------- 1 john john 105659960 Apr 4 11:57 ./pdfsam-visual_2.1.4_amd64.deb
现在又有那条消息了……
N: Download is performed unsandboxed as root as file
'pdfsam-visual_2.1.4_amd64.deb' couldn't be accessed
by user '_apt'. - pkgAcquire::Run (13: Permission denied)
错误是因为用户_apt
想要访问本地文件。因此您只需授予对此文件的访问权限。例如:
现在,如果您删除并安装,错误就会消失。
sudo apt remove pdfsam-visual
sudo apt install ./pdfsam-visual_2.1.4_amd64.deb