Я получаю его после обновления в Synaptic Manager
Недавно я сделал чистую установку Ubuntu 17.04 от 16.10.
сообщение об ошибке: -
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)
Обычно 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/
У меня тоже была эта проблема на Debian Stretch (новая установка виртуальной машины Xen), оказалось, что это проблема с sudo.
Не удалось выполнить sudo на машине.
Точнее, корневой каталог /
системы находился в 700 (drwx ------). chmod 755 /
исправил это.
tl; dr Просто игнорируйте связанный с apt "W: ... _apt ..." предупреждающие линии. Они несмертельны, и по большей части вы не можете это исправить, и вы получите те же результаты с предупреждением или без него.
Даже когда здесь реализован прекрасный ответ Флориана Диша, я все еще получаю это предупреждение. Я получаю его, когда пытаюсь загрузить исходный код с помощью apt-get source ...
, даже если я попытаюсь загрузить его как root, например, с помощью sudo
или su
], (Debian 10.4 и apt 1.8.2.1)
В Интернете полно вопросов по поводу этого предупреждающего сообщения и множества различных предлагаемых решений. Очевидно, что огромное количество людей испытывают проблемы с инструментами apt с тех пор, как они были изменены на использование _apt
для безопасных операций в песочнице.
Похоже, что после этого _apt
] было внесено изменение, сломалась целая куча вещей, которые еще не были полностью исправлены.
Давайте еще раз разберем эту проблему:
Во-первых, подходящие строки результатов с префиксом W:
: только предупреждения . Предупреждение - это что-то ненормальное, но это не останавливает работу программы. ( ref: Кусалананда )
Как заметил Флориан, «apt использует пользователя _apt
для загрузки пакетов». Похоже, это тот случай, когда пользователь с именем root
просто не может делать то, что может сделать пользователь с именем _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
То есть результаты такие же, с предупреждением или без него!
Я не могу не добавить, иронично, что обсуждался APT здесь не относится к самой ужасной из вещей: Расширенные постоянные угрозы .
... который до сих пор исправлялся эта проблема для меня, но теперь я вижу, недостаточна:
Исправьте это следующим образом:
sudo chown -R _apt:root /var/lib/apt/lists
См. .
перечисляет сам каталог , а не только его содержимое, должен иметь владельца _apt . (т.е. вот одна важная ветвь файла, в которой не удается установить права root-прав по умолчанию!)
У меня, возможно, возникла эта проблема при удалении списков , а затем повторном создании с помощью sudo mkdir lists ; apt update
, как рекомендовано в другом месте.
Также это решение может быть ДОПОЛНИТЕЛЬНО к любым другим решениям, , поскольку я сначала попробовал кучу других вещей.
Debian 10.2 Stretch.
# 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
Сделать сам файл доступным для чтения пользователю _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
Самое простое решение:
Просто используйте старый apt-get:
apt-get --download install xzy
, к счастью, старый apt-get не содержит этой странной ошибки.
Apt нужны привилегии root, чтобы что-то делать, а потом для чего он их отбрасывает? Качаешь ??? Хотя все установки происходят с привилегиями root? Совершенно бессмысленно.
Странное примечание: apt не имеет флага принудительной установки NONE, что очень странно. Кроме того, он не может использоваться для всех сценариев, так что определенный шаг назад. Почему у нас не может быть более 100% функциональной замены apt-get?