В чем разница между apt-get install и apt-get build-dep?

На странице apt-get man можно найти это:

install pkg (s)
Эта опция сопровождается одним или несколькими пакетами, необходимыми для установки. Каждый пакет представляет собой имя пакета, а не полное имя файла (например, в системе Fedora Core аргументом будет glibc, а не glibc-2.4.8.i686.rpm).
Все пакеты, требуемые пакетами, указанными для установки, также будут извлечены и установлены .
[...]

build-dep source_pkg
Вызывает apt-get для установки / удаления пакетов при попытке удовлетворить зависимости сборки для исходного пакета.

Похоже, что оба они пытаются удовлетворить зависимости, но у меня были разные результаты, когда устанавливал matplotlib с каждым из них: apt-get intall не работал с моим последующим pip install matplotlib в моем virtualenv, в то время как apt-get build-dep сделал *.

* Да, мне нужно было установить matplotlib в venv, но pip не смог разрешить некоторые из зависимостей, поэтому я лениво использовал apt для его решения

33
задан 22 February 2018 в 01:15

2 ответа

Короткая версия.

apt-get install

устанавливает новый пакет, автоматически решая и загружая зависимые пакеты. Если пакет установлен затем попытка обновить до последней версии.

apt-get build-dep

Склонные причины - добираются для устанавливания/удаления пакетов в попытке удовлетворить зависимости от сборки для исходного пакета.

Команда sudo apt-get build-dep packagename средства установить все зависимости для 'packagename' так, чтобы я мог создать его". Таким образом, DEP сборки является Кв. - получают команду точно так же, как установка, удаляют, обновляют, и т.д.

build-dep управляйте ищет локальные репозитории в системе, и установите зависимости от сборки для пакета. Если пакет не делает существует в локальном репозитории, он возвратит код ошибки.

Для установки matplotlib посмотрите Для Установки matplotlib на Ubuntu

Source:ManPage & Ravi Saive

39
ответ дан 22 February 2018 в 01:15

Различие - необходимы ли зависимости во времени выполнения в противоположность в buildtime.

Например, возможно, я создаю двоичный файл, который использует openssl. Во время изготовления мне были бы нужны openssl заголовочные файлы, которые находятся в libssl-dev. Я затем перечислил бы это как a Build-Depends.

Однако для получающегося двоичного файла и пакета не нужны заголовок и другие файлы для разработчика, таким образом, во время установки мне не нужно libssl-dev. Это не было бы в Depends, затем. Но libssl, библиотека времени выполнения мой двоичный файл, связанный против, должна была бы быть в Depends.

Человек разделяет Вас заключенный в кавычки, указывают на это (это говорит о, "удовлетворяют зависимости от сборки" пакета), но без предварительных знаний того, когда Сборка - Зависит, используются, это может сбивать с толку.

Взгляните на руководство политики Debian для определений полей файла управления:

http://www.debian.org/doc/debian-policy/ch-controlfields.html

вот раздел по Сборке - Зависит. Обратите внимание, что это находится под "зависимостями для исходного заголовка" пакетов:

http://www.debian.org/doc/debian-policy/ch-relationships.html#s-sourcebinarydeps

И эти переговоры о Зависят. Отметьте its' под Двоичным заголовком пакетов:

http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps

19
ответ дан 22 February 2018 в 01:15

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

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