Чи міг Apt видалити пакети, які потребують програмне забезпечення, встановлене користувачами з джерела?


14

Apt обробляє залежності між пакетами, встановленими з його сховищ або *.debфайлів. Однак як щодо програмного забезпечення, яке користувачі склали та встановили з джерела, ./configure && make && make installне створюючи .debспочатку файл? Чи можливо Apt міг видаляти пакунки, необхідні для такого програмного забезпечення? Чи встановило б програмне забезпечення з джерела в /optчи /usr/localзмінило б це?


1
Ви можете встановити пакет equivs як резервний пакет, встановлений з джерела, щоб змусити ваші залежності залишатися встановленими.
Faheem Mitha

Відповіді:


13

APT нічого не знає про програмне забезпечення, яке було встановлено вручну. Він не знає, які бібліотеки потребують програмне забезпечення чи що.

Коли APT встановлює пакет лише для задоволення залежностей іншого пакету, цей пакет позначається як автоматично встановлений. Якщо ви видалите всі пакунки, які залежать від автоматично встановленого пакету, він видаляється під час запуску apt-get autoremove; Для фронталів вищого рівня до APT зазвичай пропонують це зробити після іншого обслуговування. Щоб уникнути видалення пакунків, необхідних для локального програмного забезпечення, позначте ці пакети як встановлені вручну: або ключ у придатності.apt-mark manual PACKAGE-NAMEm

Щоб знайти, які бібліотечні пакети потребують бінарного виконуваного файлу, запустіть ldd /path/to/executable. Для кожного рядка, що містить , запустіть для відображення назви пакету, що містить цю бібліотеку. Для скриптів показує перекладача, використовуваного сценарієм; переконайтесь, що цей перекладач залишається встановленим. Знайти, які бібліотеки використовуються в скрипті, може бути складно, немає універсального способу зробити це./usr/lib/SOMETHINGdpkg -S /usr/lib/SOMETHINGhead -n 1 /path/to/script

Якщо ви вручну встановили більш нову версію пакета, який присутній у вашому дистрибутиві, подивіться на залежність пакета розповсюдження та позначте їх як встановлені вручну.


apt-getу Debian Джессі не має manualможливості. Для цих підказок щодо встановлення вручну проти автоматичної (матичної) я використовую apt-markзамість цього. ( apt-mark manual pkg, apt-mark showmanual pkg, apt-mark auto pkgІ т.д.)
Lekensteyn

@Lekensteyn Я мав на увазі apt-mark, спасибі
Жил "ТАК - перестань бути злим"

14

aptі dpkgабсолютно можна видалити програмне забезпечення, яке вимагається місцевим інстальованим іншим програмним забезпеченням, яке не входить у сферу системи управління пакетами. Просто немає можливості aptі dpkgзнати, що таке програмне забезпечення може існувати.

Місце, де встановлено таке програмне забезпечення, не має ніякої різниці: це може бути /optабо /usr/localв домашніх довідниках користувачів (в цьому випадку навіть sysadmin може і не знати про його наявність) або в будь-якому іншому місці.

Технічно aptабо dpkgнавіть можна видалити програмне забезпечення, яке вимагається іншим програмним забезпеченням, яке є частиною системи управління пакетами, якщо останнє програмне забезпечення не заявить, що це залежить від колишнього програмного забезпечення. Однак процес створення пакетів deb включає в себе автоматизацію, щоб запобігти забувачам пакунків оголосити подібну залежність.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.