Необходимо предотвратить установку пакета

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

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

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

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

2 ответа

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

Предотвращать apt от установки пакета fooдобавьте раздел для этого пакета в файл /etc/apt/ Предпочтения, который выглядит следующим образом.

Package: foo
Pin: release *
Pin-Priority: -1

Это не позволит apt установить foo, а также не позволит apt установить все, что зависит от foo.

Следующая ближайшая вещь, о которой я могу подумать, - это удержать foo в его текущей версии, что препятствует обновлению foo (если dpkg не задан --force-hold опция или если apt отменяет удержание). Чтобы задержать пакет foo, сделайте следующее.

echo foo hold | sudo dpkg --set-selections
  • Могу ли я преодолеть тот факт, что это зависимость, и все еще иметь возможность обновить мою систему?

Вы можете установить отдельные пакеты, несмотря на нарушения зависимостей, используя dpkg --force-depends, Вы не сможете использовать apt делать это, если вы apt-get source пакет, который зависит от foo и перестраивает его без зависимости от foo.

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

Чтобы избежать установки зависимости:

  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
Другие вопросы по тегам