Как я могу удалить все зависимости от сборки для конкретного пакета?

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

Они (обычно) бесполезны, после того как задание компиляции сделано.

Так, как я удаляю все зависимости сборки для конкретного пакета?

9
задан 26 August 2012 в 03:55

4 ответа

Для выяснения зависимостей сборки программы можно запустить apt-cache showrc pkgname, в котором среди прочего будет перечислена Build-Depends, которые часто являются файлами, заканчивающимися на -dev; хотя стоит проверить, нужны ли какие-либо из файлов (в частности, не помеченные -dev) другим программам. Это можно узнать, используя - apt-cache зависит от файла и - apt-cache rdepends file. Следующий пример для Shotwell:

apt-cache showsrc shotwell

Build-Depends: 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), libraw-dev (>= 0.13.1-2), libusb-dev, libjson-glib-dev (>= 0.7.6), libgstreamer0.10-dev (>= 0.10.28), libgstreamer-плагин-основа 0.10-dev (>= 0.10.32), python-scour, libunity-dev, liblaunchpad-интеграция-3.0-dev (>= 0.1). 36), librest-dev

Есть команда сделать все это за один раз на сайте webupd8, но я обнаружил, что с текущей версией Ubuntu, похоже, не работает надежно, так как слишком много удаляет . Я попробовал его с Pinta, и он предложил убрать всю монобиблиотеку. Обсуждение таких проблем с использованием команд типа webupd8 происходит на Launchpad. Будьте очень внимательны при экспериментах с любыми "решениями", которые могут быть найдены.

Жаль, что для установленных пакетов build-dep нет команды autoremove.

5
ответ дан 21 October 2019 в 12:24

Тамблвид пишет :

На будущее,Я настоятельно рекомендую использовать mk-build-deps ... вместо aptitude build-dep . В результате остается пакет ... в вашей системе, [который имеет зависимости] от сборки, который вы можете легко удалить позже.

mk-build-deps можно установить с помощью sudo apt install devscripts

7
ответ дан 21 October 2019 в 12:24

Опция 1:

Запомните, какие пакеты были установлены с помощью sudo apt-get build-dep PACKAGE_NAME и удалите их после сборки.

Вариант 2:

apt-cache showrc дает много информации о пакетах-источниках, включая список сборочных зависимостей.

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. Просто прочитайте список пакетов, которые необходимо удалить перед тем, как продолжить.

4
ответ дан 21 October 2019 в 12:24

Чтобы пакеты, которые вам нужны, не удалялись:

read -p "Enter package name: " packageName
sudo apt-mark auto $(apt-cache showsrc $packageName | sed -e '/Build-Depends/!d;s/Build-Depends: \|,\|([^)]*),*\|\[[^]]*\]//g' | sed -E 's/\|//g; s/<.*>//g')
sudo apt-mark manual build-essential fakeroot devscripts
sudo apt autoremove --purge

Однако вам действительно стоит подумать об использовании mk -build-deps в будущем, чтобы избежать крушения этого пакета.

1
ответ дан 5 January 2021 в 23:36

Другие вопросы по тегам:

Похожие вопросы: