8

Я установил Amsynth от Lucid в Karmic, используя:

dpkg --force-depends-version -i amsynth_1.2.2-1_i386.deb

Причина установки версии Lucid заключается в том, что версии Karmic исполнилось 3 года, и она зависает на моей машине. Пакет Lucid Amsynth зависит от более новых версий libatk1 и libjack0, чем Karmic, но я подумал, что рискну, и оказалось, что Amsynth работает нормально.

Однако aptitude пытается удалить Amsynth каждый раз, когда я делаю обновление. Я думаю, что мне удалось отложить это, но теперь способность отменяется. Как я могу сказать aptitude игнорировать сломанный пакет и продолжать.

3 ответа3

7

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

ar x foo.deb
vim control.tar.xz  # see below
ar r foo.deb control.tar.xz
dpkg -i foo.deb

и dpkg больше не знает о зависимостях foo. В vim вы должны выбрать ./control (я использую vim для чтения упакованных файлов - распакуйте и используйте другой редактор и перепакуйте, если хотите) и удалите нежелательные зависимости из строки

Depends: foo bar
4

В Ubuntuforums есть взломанное решение. Решение кряка лучше, но больше работы.

Я не смог найти в Google ничего по этому поводу, за исключением компиляции вашего собственного "фиктивного пакета" (невозможно без удаления сломанного пакета (ов). Если вам не повезло, что у вас уже есть инструменты), но поиск на моем собственном жестком диске дал мне ответ в конце концов!

Для тех, кто хотел бы знать, вот как "разархивировать" пакет в synaptic / aptitude / apt-get, не удаляя его.

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

В терминале введите код:

sudo gedit /var/lib/dpkg/status

ищите в файле яблоки, пока не найдете что-то вроде:

Код:

Package: apples
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 316
Maintainer:
Architecture: i386
Source: applesauce
Version: 1.0.10-1
Depends: packageA, packageB, obsolete
Description: Apples on your desktop!

Удалите устаревшие из строки Зависит: сохраните файл, и все готово. Надеюсь, это поможет некоторым людям.

2

В разделе "Настройки" aptitude (Ctrl-T, чтобы войти в меню; в разделе "Параметры") снимите флажок с опции "Обработка зависимостей", которая гласит "Автоматически исправлять поврежденные пакеты перед установкой или удалением". Это должно заставить aptitude перестать пытаться исправить пакет каждый раз, когда вы меняете другие пакеты.

В качестве более постоянного исправления вы должны получить исходные пакеты для установленного вами пакета Lucid Amsynth, а также исходные пакеты для libatk1 и libjack0 и создать свой собственный обновленный пакет. В зависимости от того, что еще использует эти библиотеки, вам может потребоваться обновить и другие пакеты, но вы, вероятно, можете обойтись без них. (По сути, это обратная передача этих пакетов из Lucid в Karmic - вы должны проверить репозиторий Karmic-backports или PPA, чтобы узнать, сделал ли кто-нибудь это уже. Если ваши новые пакеты работают, рассмотрите возможность отправки их в Karmic-backports для использования другими пользователями.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .