Чи є кращий спосіб встановити лише необхідні залежності пакету, замість того, щоб встановити його безпосередньо за допомогою apt-get (або будь-якого іншого інтерфейсу dpkg), а потім негайно видалити його, не залишаючи його залежностей?
Чи є кращий спосіб встановити лише необхідні залежності пакету, замість того, щоб встановити його безпосередньо за допомогою apt-get (або будь-якого іншого інтерфейсу dpkg), а потім негайно видалити його, не залишаючи його залежностей?
Відповіді:
apt-get надає команду саме для цього ...
apt-get build-dep <package name>
З чоловічих сторінок, які ви отримуєте
build-dep викликає apt-get для встановлення / видалення пакунків, намагаючись задовольнити залежності збірки для вихідного пакету. За замовчуванням залежності задовольняють, щоб створити пакунок на власному рівні. За бажанням архітектура хоста може бути вказана замість параметра --host-architecture.
Придатність дозволить вам вказати запит замість імені пакета при установці. Якщо ви хочете встановити залежності названого пакету foo
, ви можете встановити пакети, які мають зворотну залежність від foo
:
aptitude install '?reverse-depends(foo)'
або
aptitude install '~Rfoo'
Проблема з встановленням пакету та його видаленням полягає в тому, що всі пакунки, які встановлюються як залежності, будуть позначені як "автоматично встановлені", і їх буде видалено будь-якою дією встановлення / видалення / оновлення за можливостями або під час запуску, apt-get autoclean
якщо ви не позначте їх як встановлені вручну за aptitude mark
допомогою apt-mark
команди або команди.
Однак тут виникає питання, чому ви хочете це зробити, я найкраще здогадуюсь, що ви намагаєтесь встановити залежності для певного програмного забезпечення, яке збираєтеся скласти вручну. У цьому випадку ви спочатку встановите залежність збірки apt-get build-dep packagename
, але потім вам слід створити макетний пакет, який має залежність від часу виконання (які, як правило, відрізняються від залежностей збірки), використовуючи equiv
пакет для створення макетного пакета з правильними залежностями для Ваша програма, складена вручну. Дивіться інформацію про те equivs
в APT HOWTO
build dependencies
іdependencies
? Як і у випадку, якщо ви зазвичай встановлюєте програму, ви отримуєте залежності, які їй потрібно реально запускати, а при побудові залежностей я більше думаю про бібліотеки, компілятори тощо. Отже, як я не впевнений (ця відповідь має підсумки), але мені здається, це не тривіально, що отримання залежностей від збірки - це те саме, що отримання залежностей (запуску), які мають пакети?