Игнорировать все зависимости для конкретного пакета с помощью apt-get

Это очень конкретный вопрос, который Google не помог ответить.

Я запускаю Ubuntu 13.04 с apt 0.9.7.7ubuntu4 for amd64 compiled on Oct 3 2013 15:25:56 .

Я хочу установить Erlang из пакета .deb, но я не хочу тянуть все его зависимости. Сам пакет указывает, что он зависит от Java и wx-библиотек, но на самом деле они не нужны, если вы не хотите взаимодействовать с Java или wxWidgets.

Я могу установить Erlang вот так

 sudo dpkg -i --force-depends erlang.deb 

Тем не менее, установка чего-либо еще с apt-get впоследствии терпит неудачу из-за неудовлетворенных зависимостей. Поэтому, если я хочу установить git после Erlang, я получаю следующее

 $ sudo apt-get install -y git Reading package lists... Building dependency tree... You might want to run 'apt-get -f install' to correct these: The following packages have unmet dependencies: esl-erlang : Depends: default-jre-headless but it is not going to be installed or java2-runtime-headless or java1-runtime-headless or java2-runtime or java1-runtime Depends: libwxbase2.8-0 but it is not going to be installed Depends: libwxgtk2.8-0 but it is not going to be installed Recommends: erlang-mode but it is not going to be installed git : Depends: libcurl3-gnutls (>= 7.16.2-1) but it is not going to be installed Depends: perl-modules but it is not going to be installed Depends: liberror-perl but it is not going to be installed Depends: git-man (> 1:1.7.9.5) but it is not going to be installed Depends: git-man (< 1:1.7.9.5-.) but it is not going to be installed Recommends: patch Recommends: rsync Recommends: ssh-client E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). 

Есть ли способ сделать esl-erlang закрытым без запуска apt-get install -f ?

Я хочу что-то вроде этого:

 sudo apt-get install --ignore-deps-for-package=esl-erlang git 

Или вот так:

 sudo apt-cache shut-package-up esl-erlang 

или это:

 sudo apt-get download git sudo dpkg -i --with-deps git.deb 

Я нашел аналогичный вопрос: https://serverfault.com/questions/250224/how-do-i-get-apt-get-to-ignore-some-dependencies . Несколько ответов предоставляют удобные ручные шаги для изменения зависимостей определенных пакетов.

Я все еще ищу надежный автоматический метод.

Я понимаю точку bjanssen, но для диспетчера пакетов кажется смешным, что -force --force-depends от установки одного пакета, но не позволяет принудительно зависать-навсегда-и-stop-warning-me-about-this-dependency.

У меня была аналогичная проблема с пакетом, который зависел от версии libcairo, немного превышающей версию, доступную в настоящее время в Debian. Для моих целей он все еще отлично работает. Я рад продолжать использовать его, пока обновление libcairo не появится в apt. Я не хочу компилировать исходный код или создавать собственный пакет.

Решение, которое я нашел:

  • Edit /var/lib/dpkg/status ,
  • Найти пакет со сломанными зависимостями
  • Depends: строку Depends: чтобы остановить жалобу пакета.

Я предполагаю, что это будет перезаписано при следующем обновлении пакета, но это именно то, что я хочу.

То, что вы пытаетесь сделать, противоречит назначению менеджера пакетов, который пытается сохранить разумную среду, если вы используете неправильный инструмент для работы. Не пытайтесь сломать apt-get.

Правильный способ решить вашу проблему – создать собственный пакет с зависимостями, которые вам подходят. Существует официальный способ (довольно активно: http://www.debian.org/doc/manuals/maint-guide/index.en.html ) и быстрый и грязный способ использования apt-build или для пакетов, не входящих в Источник распространения, checkinstall . Все пакеты продуктов apt-get будут успешно установлены.

В заключение вы можете подвергнуть сомнению мудрость сопровождающего esl-erlang, чтобы включить определенные зависимости, но вы не можете винить менеджера пакетов за предполагаемое поведение. Если вы считаете, что эти зависимости неверны, вы должны указать ошибку в пакете.

Изменить /etc/apt/sources.list

Добавь это:

 deb http://ftp.ca.debian.org/debian/ jessie main contrib non-free deb-src http://ftp.ca.debian.org/debian/ jessie main contrib non-free deb http://security.debian.org/ jessie/updates main contrib non-free deb-src http://security.debian.org/ jessie/updates main contrib non-free deb http://ftp.ca.debian.org/debian/ jessie-updates main contrib non-free deb-src http://ftp.ca.debian.org/debian/ jessie-updates main contrib non-free deb http://ftp.ca.debian.org/debian/ jessie-backports main contrib non-free 

Система обновления:

apt-get update

apt-get upgrade apt-get update

  • Изменить параметры (pager) по умолчанию
  • Соображения об установке Windows 8 и Ubuntu бок о бок
  • Поиск команд меню в Windows 7
  • Легко сказать, если сфокусирован на окне VirtualBox?
  • Использовать инструмент командной строки для использования другого интерфейса?
  • Как сохранить удаленную задачу после запуска в консоли SSH?
  • Как преобразовать cue / bin mds / mdf в iso на Ubuntu?
  • Как укоротить отображение символов для текущего каталога в приглашении
  • Как восстановить Windows 7 после сырой установки Ubuntu?
  • Могу ли я сделать скрипт всегда исполняемым как root?
  • Прозрачность терминала, проблема с Imagemagick и X11
  • Давайте будем гением компьютера.