Зависимости от установки с Кв. - добираются, не делая их независимыми, если уже установлено

Когда я использую склонный - добираются для случайной установки пакета, который уже установлен как зависимость другого пакета, это повреждает ту "зависимость" путем маркировки пакета как manual вместо auto.

Я могу вручную зафиксировать это более позднее использование sudo apt-mark markauto package-name.

Существует ли способ сказать склонный - добираются (или способность, dpkg, или другой инструмент), чтобы не разорвать связь во-первых или ничего не сделать, если требуемый пакет уже установлен?

Я сталкиваюсь с этим несколько различных путей:

У меня есть список пакетов для установки для создания чего-то определенной работой (из инструкций относительно веб-сайта как это).

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

4
задан 30 August 2016 в 07:17

2 ответа

Если нет никакого способа сделать это с существующим инструментом, вот обходное решение.

Выполнение каждый пакет через сценарий удара как следующее:

#!/bin/bash
dpkg -s "$1" &> /dev/null
(($?)) && sudo apt-get install "$1"

dpkg -s возвраты 0, если пакет (данный как аргумент сценарию) установлен; 1, если это не. Этот сценарий ничего не сделает, если пакет будет установлен, но установите его, если это не - предотвращение исходной проблемы.

dpkg команда производит набор информации, которая не нужна здесь, таким образом, это перенаправляется в /dev/null битоприемник для избавлений от него.

(($?)) взгляды на код возврата от dpkg. Это работает как C - противоположность нормальных тестов удара. Если $? будет 1, потому что пакет не установлен, это оценит как верное и инициирует && пункт для установки пакета.

В зависимости от того, что необходимо, это может быть превращено в функцию и/или помещено в цикл по списку имен пакета.

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

я нашел dpkg техника здесь .

0
ответ дан 1 December 2019 в 10:17

Вы сказали

Когда я использую склонный - добираются для случайной установки пакета, который уже установлен как зависимость другого пакета, это повреждает ту "зависимость" путем маркировки пакета как manual вместо auto

Я думаю, Вы получили его немного неправильно. Это не повредит цепочку зависимости. Другой пакет все еще зависит от отмеченного как ручной пакет. Единственная вещь, которая затронута, является этим, если Вы теперь работаете apt-get autoremove они отметили, поскольку ручные пакеты не будут удалены. Поскольку, для apt отмеченный, поскольку руководство означает, что пользователь установил их сознательно, не потому что Пользователь хотел другие пакеты, которые в ответ зависели от этих пакетов.

Вы спросили

Существует ли способ сказать склонный - добираются (или способность, dpkg, или другой инструмент), чтобы не разорвать связь во-первых или ничего не сделать, если требуемый пакет уже установлен?

Я не нашел, что любые инструменты делают так автоматически до сих пор. Но это не звучит логичным также. Поскольку, в этом случае это будет похоже на каждый пакеты, которые Вы устанавливаете, будет automatically installed, создание их уязвимый для apt-get autoremove команда.

Так, Если Вы хотите, чтобы некоторый пакет был отмечен, как автоматически установлено несмотря на то, чтобы быть установленным вручную, необходимо использовать apt-get markauto или aptitude mark-auto.

2
ответ дан 1 December 2019 в 10:17

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

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