Как apt-get установить пакет, игнорируя зависимости?

1041
Steve Summit

По разным причинам я использую некоторые системы Debian с, скажем, нечетными наборами пакетов. Это становится почти невозможно сделать, apt-get installчтобы установить что-либо; aptвсегда жалуется, что A зависит от B, но он не будет установлен, или что C сломан, или что-то в этом роде.

Мой вопрос в том, что является хорошим способом проклясть торпеды и двигаться вперед на полной скорости, так или иначе устанавливая содержимое пакета? Я знаю некоторые частичные приемы, но их не всегда достаточно:

  • Если .debфайл был загружен, я мог бы найти его /var/cache/aptи установить вручную dpkg -i, хотя я подозреваю, что даже там я могу зависнуть (установка может завершиться ошибкой) из-за неудовлетворенных зависимостей.

  • Я думаю, что есть способ извлечь содержимое .debфайла вручную, хотя я никогда не могу вспомнить его, и я уверен, что это сильно не рекомендуется, по обычным причинам.

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

Есть ли другие варианты? Есть ли apt-getпереключатель "игнорировать зависимости", который я пропустил? Я видел ссылки на --nodeps--no-deps options, butapt` (по крайней мере, в этой системе), кажется, их не поддерживает.

Или, побочный вопрос, есть ли способ заставить aptпо крайней мере загрузить .debфайл, даже если он знает, что не сможет его установить? (Я пытался использовать apt-get -d install, но, похоже, ничего не загружается.)

Я видел предыдущий вопрос: игнорируйте все зависимости для определенного пакета с помощью apt-get, и он содержит некоторые ответы, но я все еще ищу лучший.

[Сноска. Нет необходимости рассказывать мне, что это за плохая идея, и что я не должен пытаться это делать. Я уже знаю, что. :-)]

0
Из любопытства ... если вы точно знаете, что пакет A зависит от B, а пакет A НЕ будет работать из-за неудовлетворенных зависимостей (даже если каким-то образом вам удастся выполнить неудачную установку) - чего вы пытаетесь достичь? Вы пробовали делать из Source? Также, если вы запишите свою версию Debian и какой пакет вы пытаетесь установить, кто-то здесь, вероятно, столкнулся с подобной / той же проблемой и может дать вам более конкретный ответ. Darius 5 лет назад 0
Создание эквивалентного пакета занимает одну короткую команду, как много проблем? grawity 5 лет назад 0
@ Grawity Насколько я понимаю, для «эквивалента» требуется одна команда, а затем вам нужно отредактировать шаблон, заполненный всевозможной загадочной информацией, которую вы можете не понять. Я что-то пропустил? Steve Summit 5 лет назад 0
@Darius Это не просто один пакет, который я пытаюсь установить сегодня; это проблема, которая возникает постоянно. Обычно это сложнее, чем просто «А зависит от Б». Обычно A зависит от B1, который не будет установлен, но у меня установлен B2, но по непонятным причинам `apt` не выполняется. В общем, я верю (или надеюсь), что A * будет * работать, и я хочу хотя бы попробовать, но `apt` не позволит мне. Steve Summit 5 лет назад 0
@Darius * Если вы знаете, что пакет A НЕ будет работать ... * Кроме того, часто бывает так, что попытка запустить A и наблюдение за режимом сбоя может дать важные подсказки относительно того, что может потребоваться для фактического удовлетворения зависимости и заставить его работать. Но, опять же, `apt` даже не даст вам попробовать. Steve Summit 5 лет назад 0
«Я все еще ищу лучший». лучше в каком смысле конкретно для чего то не рекомендуется? Что не так с `--force-зависит`? Patrick Mevzek 5 лет назад 0
@PatrickMevzek "Лучше" в том, что это позволит мне добиться прогресса. У меня сломанная система. Мне нужно установить пакет. `apt` знает, где он находится, но отказывается устанавливать его, отказывается даже загружать файл` .deb`. Так что я полностью и полностью застрял. Я могу либо стереть и переустановить всю мою систему (что не вариант), либо я могу попытаться найти исходные коды для пакета и собрать его самостоятельно с нуля. Но «метко» не может мне помочь * вообще *. Вернее, это мне не поможет. Есть вещи, которые он мог бы сделать для меня, это было бы удобно для меня, и это сэкономило бы мне время, но оно отказывается. Steve Summit 5 лет назад 0
@PatrickMevzek Под словом --force-depen` вы подразумеваете опцию `dpkg`? Я бы использовал его, если бы у меня был файл `.deb` для установки, но у меня его нет. Я надеялся, что `apt-get` сможет хотя бы загрузить его для меня. Steve Summit 5 лет назад 0
`apt-get download`? или флаг `--download-only`? Patrick Mevzek 5 лет назад 0
Подкоманда @PatrickMevzek `download` не существует в версии в этой системе. Я использовал `-d` исчерпывающе, но он ничего не загружает, я полагаю, потому что зависимости не встречаются. Steve Summit 5 лет назад 0
Вы не указали, какую версию вы используете ... Patrick Mevzek 5 лет назад 0
@PatrickMevzek apt версия 0.8.10.3. (И спасибо за ваши предложения, я ценю их, даже если они не работают. Мне, вероятно, не следовало задавать вопрос в первую очередь, так как фундаментальная проблема заключается в том, что «apt» и я просто не понимаю вместе, и не должны пытаться.) Steve Summit 5 лет назад 0
Если это можно сделать вручную или в ручном режиме, вы всегда можете перейти на `packages.debian.org`, найти нужный пакет, скачать его и затем выполнить` dpkg -i` с некоторыми флагами принудительной установки. Но действительно, перечитывая ваш вопрос, мне кажется, что вы попали в какую-то странную ситуацию, когда что-то сломалось, и я верю, что ваша энергия будет лучше потрачена, чтобы избежать этого. Или у вас есть альтернативы для какого-то конкретного приложения вне управления ОС, например, chroot, контейнеры / виртуальные машины или «привязки», что является тенденцией. Или просто установить вещи прямо из исходного кода, минуя пакеты, если вам не нравится `apt`? Patrick Mevzek 5 лет назад 0

0 ответов на вопрос

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