Нужно предотвратить установку пакета [дубликат]

На этот вопрос уже есть ответ здесь:

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

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

Могу ли я преодолеть тот факт, что он является зависимостью, и все равно иметь возможность обновить систему?

Я думаю, в частности, об индикаторе сообщений из Unity. Если я по какой-то причине удалю его и снова добавлю Unity, я не хочу, чтобы апплет был установлен снова. Как я могу предотвратить его установку? (или глобальное меню, версии java, удаляющие мой пользовательский установленный, и т.д... вы поняли идею).

19
задан 30 January 2013 в 23:45

2 ответа

  • Есть ли какой-нибудь способ «внести в черный список» пакет, который будет установлен, даже как зависимость от другого?

Чтобы запретить 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.

0
ответ дан 30 January 2013 в 23:45

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

Постараться не устанавливать зависимость:

  1. загрузите необходимые пакеты:

    sudo apt-get --download-only install pkg-name
    
  2. удалите нежелательные пакеты

    sudo rm /var/cache/apt/archive/bad-pkg_*.deb
    
  3. установите все другие пакеты

    sudo apt-get --no-download --ignore-missing install pkg-name
    

С другой стороны для установки пакета без рекомендует:

sudo apt-get --no-install-recommends install pkg-name
2
ответ дан 30 January 2013 в 23:45

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

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