Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.



Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)

  • Astra Linux Common Edition 2.12


В Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5) для установки пакетов из файлов использовалась команда:

Command
sudo dpkg -i <имя_файла>

Эта команда доступна и в более новых версиях Astra Linux, однако у нее есть существенный недостаток: эта команда не устанавливает автоматически необходимые зависимости (пакеты, необходимые для нормальной работы пакета, устанавливаемого из файла). В итоге для корректно завершения установки пакета приходится выполнять доустановку пакетов для исправления нарушенных зависимостей:

Command
sudo apt -f install

В более новых версиях установка пакета из файла с установкой всех его зависимостей может быть выполнена командой:

Command
sudo apt install ./<имя_файла>


Предупреждение
Для установки с помощью apt имя файла должно быть указано не просто как <имя_файла>, а начинаться с символа "/" (если используется полный путь) или с символов "./" (для файлов расположенных в текущем каталоге). Если это требование не выполнено, то будет выполнена попытка установить пакет с именем <имя_файла>, которая закончится ошибкой вида "пакет не найден".


При установке пакетов из файлов с помощью команды apt пакеты и их зависимости устанавливаются автоматически, но при успешном завершении установки выдается предупреждение:

Блок кода
N: Download is performed unsandboxed as root as file ... couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Отказано в доступе)

или

Блок кода
N: Загрузка выполняется от лица суперпользователя без ограничений песочницы, так как файл «...» недоступен для пользователя «_apt». - pkgAcquire::Run (13: Отказано в доступе)

Это предупреждение о том, что программа установщик, не имея нужных прав доступа к текущему каталогу, вынуждена была получить привилегии root для выполнения установки.  Установка при этом завершается успешно, и предупреждение можно игнорировать, однако с точки зрения безопасности, правильнее по возможности исключить работу с привилегиями root. Для того, чтобы исключить это предупреждение, нужно на время выполнения установки предоставить служебному пользователю _apt права на доступ к текущему каталогу и к его родительским каталогам.
Для установки может быть удобно использовать системный каталог временных файловых объектов /tmp/. Примерный сценарий для установки из временного каталога:

Command

pushd `mktemp -d`
setfacl -m u:_apt:rwx `pwd`
sudo apt install . /<имя<полное_имя_файла>
setfacl -x u:_apt `pwd`
popd

Некоторым неудобством является необходимость в таком случае указывать полное имя файла, из которого выполняется установка (например, /home/user/Загрузки/package.deb).

Подробнее про применение команд setfacl/getfacl см.Списки управления доступом к файловым объектам (ACL) в Astra Linux