На этот вопрос уже есть ответ здесь:
У меня есть пакет, который я не хочу устанавливать, даже если он нужен другому.
Есть ли способ внести пакет в "черный список", чтобы он не устанавливался даже в качестве зависимости от другого?
Могу ли я преодолеть тот факт, что он является зависимостью, и все равно иметь возможность обновить систему?
Я думаю, в частности, об индикаторе сообщений из Unity. Если я по какой-то причине удалю его и снова добавлю Unity, я не хочу, чтобы апплет был установлен снова. Как я могу предотвратить его установку? (или глобальное меню, версии java, удаляющие мой пользовательский установленный, и т.д... вы поняли идею).
Чтобы запретить apt
устанавливать пакет foo
, добавьте раздел для этого пакета в файле / etc / apt / Предпочтения, который выглядит следующим образом.
Package: foo
Pin: release *
Pin-Priority: -1
Это не позволит apt установить foo, а также не позволит apt устанавливать все, что зависит от foo.
Следующая ближайшая вещь, о которой я могу подумать, это поставить hold на foo в его текущей версии, что препятствует обновлению foo (если только dpkg не предоставлен параметр --force-hold
или если apt не отменяет блокировку ). Чтобы задержать пакет foo, сделайте следующее.
echo foo hold | sudo dpkg --set-selections
Вы можете установить отдельные пакеты, несмотря на нарушения зависимостей, используя dpkg --force-depends
. Вы не сможете использовать apt
для этого, если вы apt-get source
не установите пакет, который зависит от foo, и не пересоберите его без зависимости от foo.
Если для пакета нужно (зависит от), другой пакет, то он не должен работать правильно без него. Если это может, это быть ошибкой, это должно быть рекомендование и не зависеть.
Постараться не устанавливать зависимость:
загрузите необходимые пакеты:
sudo apt-get --download-only install pkg-name
удалите нежелательные пакеты
sudo rm /var/cache/apt/archive/bad-pkg_*.deb
установите все другие пакеты
sudo apt-get --no-download --ignore-missing install pkg-name
С другой стороны для установки пакета без рекомендует:
sudo apt-get --no-install-recommends install pkg-name