Это очень специфический вопрос, на который не помог 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
Я нашел похожий вопрос: /server/250224/how-do-i-get-apt-get-to-ignore-some-dependencies . Пара ответов предоставляет удобные шаги вручную для изменения зависимостей определенных пакетов.
Я все еще ищу надежный автоматизированный метод.
источник
--nodeps
(apt-get
) или--ignore-depends
сdpkg
?Ответы:
Я понимаю точку зрения bjanssen, но для менеджера пакетов кажется нелепым разрешать
--force-depends
установку одного пакета, но не разрешать принудительную зависимость-навсегда-и-остановить-предупреждение-меня-об-этой-зависимости.У меня была похожая проблема с пакетом, который зависел от версии libcairo, немного более высокой, чем та, которая в настоящее время доступна в Debian. Для моих целей все еще работает нормально. Я рад продолжать использовать его, пока в apt не появится обновление libcairo. Я не хочу компилировать из исходного кода или создавать свой собственный пакет.
Решение, которое я нашел:
/var/lib/dpkg/status
,Depends:
строку, чтобы пакет не жаловался.Я предполагаю, что это будет перезаписано при следующем обновлении пакета, но это именно то, что я хочу.
источник
То, что вы пытаетесь сделать, противоречит назначению менеджера пакетов, который старается поддерживать нормальную среду, т. Е. Вы используете не тот инструмент для этой работы. Не пытайся сломать apt-get.
Правильный способ решить вашу проблему - создать собственный пакет с зависимостями, которые вам подходят. Существует официальный способ (довольно сложный: http://www.debian.org/doc/manuals/maint-guide/index.en.html ) и быстрый и грязный способ использования
apt-build
или для пакетов, не входящих в исходный код распространения,checkinstall
, Все производимые пакеты apt-get будут с радостью установлены.И последнее замечание: вы можете поставить под сомнение целесообразность сопровождения esl-erlang включить некоторые зависимости, но вы не можете обвинить менеджер пакетов в предполагаемом поведении. Если вы считаете, что эти зависимости неверны, вы должны сообщить об ошибке в пакет.
источник
libmng1
. Но яlibmng2
установил И символическую ссылку наlibmng1.so
. Сработала угроза, никогда не было проблем. Ноapt-get
всегда жаловался на «неудовлетворенные зависимости». Так что, безусловно, есть веская причина пытаться найти способ заставить замолчать способности в этом отношении. Так как вещи делают работу, он просто продолжает жаловаться на то , что просто не имеют никаких проблем. Он просто видит проблемы там, где их нет. И это раздражает.equivs
«молчание» apt-get, не нарушая его.Проверьте,
apt.conf
правильно ли используется используемый прокси-сервер (т. Е. Соответствует вашей сети). Это также вызывает такие проблемы, поскольку URL-адреса будут недоступны.Как правило, если вы используете прокси, то ваш
/etc/apt/apt.conf
будет выглядеть так:источник