Як я можу видалити всі побудови залежності для певного пакету?


10

Коли я хочу скомпілювати щось з джерела в Ubuntu / Debian, я зазвичай отримую залежності побудови, запускаючи " sudo apt-get build-dep PACKAGE_NAME" в термінал.

Вони, як правило, марні, коли робота над компіляцією буде виконана.

Отже, як я можу видалити всі залежності побудови для певного пакету?

Відповіді:


5

Щоб з'ясувати залежність побудови програми, яку можна запустити, apt-cache showsrc pkgnameі серед іншої інформації буде Build-Dependsвказано список , який часто закінчуються файлами -dev; хоча варто перевірити, чи -devпотрібні інші програми (особливо ті, що не позначені ) іншими програмами. Ви можете дізнатися це за допомогою apt-cache depends fileта apt-cache rdepends file. Наступний приклад для Shotwell:

apt-cache showsrc shotwell

Залежить від побудови: debhelper (> = 7.0.50 ~), m4, valac-0.16 (> = 0.15), libgee-dev (> = 0.5.0), libgtk-3-dev (> = 3.0.11), libexif -dev (> = 0.6.16), libsqlite3-dev (> = 3.5.9), libgexiv2-dev (> = 0.4.1-1build1), libgnomevfs2-dev (> = 2.24.2), libgphoto2-2-dev (> = 2.4.2), libsoup2.4-dev (> = 2.26.0), libxml2 (> = 2.6.32), libunique-3.0-dev (> = 1.0.0), libwebkitgtk-3.0-dev (> = 1.1.5), libgudev-1.0-dev (> = 145), libdbus-glib-1-dev (> = 0.80), libraryw-dev (> = 0.13.1-2), libusb-dev, libjson-glib -dev (> = 0.7.6), libgstreamer0.10-dev (> = 0.10.28), libgstreamer-plugins-base0.10-dev (> = 0.10.32), python-scour, libunity-dev, liblaunchpad- інтеграція-3.0-dev (> = 0.1.36), librest-dev

Існує команда зробити це все за один раз на веб-сайті webupd8 , але я виявив, що він, здається, не працює надійно з поточною версією Ubuntu, оскільки він, здається, видаляє занадто багато. Я спробував це з Pinta, і він запропонував видалити всю монобібліотеку. У Launchpad обговорюються такі проблеми з використанням таких команд, як webupd8 . Будьте дуже обережні, експериментуючи з будь-якими «рішеннями», які ви можете знайти.

Прикро, що autoremoveдля build-depвстановлених пакетів немає команди .


1
Я спробував метод придатності & так, ви праві, він видаляє занадто багато ... можливо через перехресні залежності. Одна інший Mothod я знайшов, щоб пройти наступний варіант (при використанні команди збирання-DEP) sudo apt-get build-dep -o APT::Get::Build-Dep-Automatic=true PACKAGE_NAME. Тепер їх можна видалити за допомогою apt-get autoremove. Але це працює лише після вилучення основного пакету.
Хуршид Алам

2
У всякому разі, я просто дізнався, що правильний спосіб зробити це, використовує pbuilder. Тож ніхто не повинен турбуватися про встановлення / видалення залежностей.
Хуршид Алам

6

Tumbleweed пише :

Надалі настійно рекомендую використовувати mk-build-deps… замість цього aptitude build-dep. Це залишає пакет ... у вашій системі, [який має залежність] від накопичувачів, який ви можете легко видалити пізніше.

mk-build-deps можна встановити за допомогою sudo apt install devscripts


4

Варіант 1:

Згадайте, які пакети були встановлені, sudo apt-get build-dep PACKAGE_NAMEі видаліть їх після створення.

Варіант 2:

apt-cache showsrc надає велику кількість інформації про вихідні пакети, включаючи список залежно від збірки.

apt-cache showsrc PACKAGE_NAME

Наприклад:

$ apt-cache showsrc pithos
Package: pithos
Binary: pithos
Version: 0.3.17~git07dcbd86a1
Section: python
Maintainer: Kevin Mehall <km@kevinmehall.net>
Build-Depends: cdbs (>= 0.4.43), debhelper (>= 6), python, python-central (>= 0.6.11), python-distutils-extra (>= 2.10)
Architecture: all
Standards-Version: 3.8.2
Format: 1.0
Directory: pool/main/p/pithos
Files:
 cdf2129923e62bb62c246965453b40bd 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
 97689e8ada8be527d689f2c83415d3b0 1544 pithos_0.3.17~git07dcbd86a1.dsc
Python-Version: current
Checksums-Sha1: 35cbf3ae52922e50a0b81afcce2cd97a86afb254 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
Package-List: pithos deb python extra
Checksums-Sha256: 2b704d86f3dc1d36d180177d11e578bdcf74ea97b09b530144afe754e570b262 2023031 pithos_0.3.17~git07dcbd86a1.tar.gz
$ sudo apt-get remove cdbs debhelper python python-central python-distutils-extra

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

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