Apt обрабатывает зависимости между пакетами, установленными из своих репозиториев или *.deb
файлов. Однако как насчет программного обеспечения, которое пользователи скомпилировали и установили из исходного кода ./configure && make && make install
без предварительного создания .deb
файла? Возможно ли, что Apt может удалить пакеты, необходимые для таких программ? Будет ли установка программного обеспечения из источника /opt
или /usr/local
изменить ситуацию?
debian
apt
dependencies
Елена
источник
источник
Ответы:
APT ничего не знает о программном обеспечении, которое было установлено вручную. Он не знает, какие библиотеки нужны программному обеспечению или что-то еще.
Когда APT устанавливает пакет только для выполнения зависимостей другого пакета, этот пакет помечается как автоматически установленный. Если вы удалите все пакеты, которые зависят от автоматически установленного пакета, этот пакет будет удален при запуске
apt-get autoremove
; высокоуровневые интерфейсы APT обычно предлагают сделать это после другого обслуживания. Чтобы избежать удаления пакетов, необходимых для локально установленного программного обеспечения, пометьте эти пакеты как установленные вручную: или введите ключ aptitude.apt-mark manual PACKAGE-NAME
m
Чтобы узнать, какие библиотеки нужны бинарному исполняемому файлу, запустите
ldd /path/to/executable
. Для каждой содержащей строки запустите, чтобы отобразить имя пакета, содержащего эту библиотеку. Для сценариев показывает интерпретатор, используемый сценарием; убедитесь, что этот переводчик остается установленным. Поиск библиотек, используемых скриптом, может быть затруднен, универсального способа сделать это не существует./usr/lib/SOMETHING
dpkg -S /usr/lib/SOMETHING
head -n 1 /path/to/script
Если вы вручную установили более новую версию пакета, который присутствует в вашем дистрибутиве, посмотрите на зависимости пакета дистрибутива и отметьте их как установленные вручную.
источник
apt-get
в Debian у Джесси нетmanual
опции. Для этих ручных и автоматических (matic) подсказок по установке я использовалapt-mark
вместо этого. (apt-mark manual pkg
,apt-mark showmanual pkg
,apt-mark auto pkg
И т.д.)apt-mark
, спасибо.apt
иdpkg
абсолютно может удалить программное обеспечение, необходимое для локально установленного другого программного обеспечения, которое выходит за рамки системы управления пакетами. Там просто не способapt
иdpkg
знать , что такое программное обеспечение может существовать.Местоположение, где установлено такое программное обеспечение, не имеет значения: оно может быть
/opt
или/usr/local
в домашних каталогах пользователей (в этом случае даже системный администратор может не знать о его наличии) или где-либо еще, на самом деле.Технически
apt
илиdpkg
даже может удалить программное обеспечение, которое требуется другим программным обеспечением, являющимся частью системы управления пакетами, если последнее программное обеспечение не может объявить, что оно зависит от предыдущего программного обеспечения. Тем не менее, процесс создания пакетов deb включает в себя автоматизацию, которая помогает разработчикам пакетов не забывать объявлять такую зависимость.источник