Вопрос или проблема
Мне нужны python-gtk2 и python-glade-2 для старого приложения, но когда я запускаю dpkg -i, я получаю следующее (переведено), указывающее на то, что у меня не хватает python ???
sudo dpkg -i python-gtk2_2.24.0-5.1ubuntu2_amd64.deb python-glade2_2.24.0-5.1ubuntu2_amd64.deb
Выбор пакета python-gtk2, ранее не выбранного.
(чтение базы данных... 364958 файлов и каталогов уже установлены.)
Подготовка к распаковке python-gtk2_2.24.0-5.1ubuntu2_amd64.deb ...
Распаковка python-gtk2 (2.24.0-5.1ubuntu2) ...
Выбор пакета python-glade2, ранее не выбранного.
Подготовка к распаковке python-glade2_2.24.0-5.1ubuntu2_amd64.deb ...
Распаковка python-glade2 (2.24.0-5.1ubuntu2) ...
dpkg: проблемы с зависимостями мешают настройке python-gtk2 :
python-gtk2 зависит от python (<< 2.8) ; однако :
Пакет python не установлен.
python-gtk2 зависит от python (>= 2.7) ; однако :
Пакет python не установлен.
python-gtk2 зависит от python:any (>= 2.6.6-7~) ; однако :
Пакет python не установлен.
dpkg: ошибка при обработке пакета python-gtk2 (--install) :
проблемы с зависимостями - не настроен
dpkg: проблемы с зависимостями мешают настройке python-glade2 :
python-glade2 зависит от python (<< 2.8) ; однако :
Пакет python не установлен.
python-glade2 зависит от python (>= 2.7) ; однако :
Пакет python не установлен.
python-glade2 зависит от python-gtk2 (= 2.24.0-5.1ubuntu2) ; однако :
Пакет python-gtk2 еще не настроен.
dpkg: ошибка при обработке пакета python-glade2 (--install) :
проблемы с зависимостями - не настроен
При выполнении обнаружены ошибки :
python-gtk2
python-glade2
Тем не менее :
sudo apt list python2.7 --installed
Список... Готово
python2.7/jammy,сейчас 2.7.18-13ubuntu1 amd64 [установлено]
Пожалуйста, скажите, что не так. Я сделал это нормально несколько дней назад на debian11, и мне просто нужно было запустить
sudo apt -f install
чтобы исправить проблему. Вместо этого, когда я apt -f install здесь, ubuntu хочет удалить 2 пакета, вместо того чтобы исправить установку.
Спасибо за советы. Я знаю, что это действительно не стандартная вещь.
Хотя это не так элегантно, теперь у нас есть fslint-unofficial snap в Центре программного обеспечения Ubuntu.
Смотрите ответ Just_Alex на Как установить Mendeley на Ubuntu 22.04?, который начинается со слов “При установке Mendeley на Ubuntu 22.04 я столкнулся со следующей ошибкой :”.
Он ссылается на подробный ответ на https://serverfault.com/a/383958, чтобы удалить зависимость python
из python-gtk2_2.24.0-5.1ubuntu2_amd64.deb. Вы должны иметь возможность сделать то же самое для пакета python-glade2_2.24.0-5.1ubuntu2_amd64.deb.
После того как вы удалите зависимость и перепакуете .debs, вы сможете продолжить установку/запуск вашего старого приложения.
Ответ или решение
Для установки пакетов python-gtk2
и python-glade2
в Ubuntu 22.04 с использованием старого приложения, вы столкнулись с ошибками зависимости, связанными с отсутствием пакета python
. Давайте подробно разберем эту ситуацию и найдем способы установки необходимых пакетов.
Шаг 1: Проверка зависимости Python
Судя по выводу ваших команд, пакет python
отсутствует. В Ubuntu 22.04 пакет python
больше не поставляется отдельно, так как он был заменен на Python 2.7 и Python 3.X. Однако, для установки python-gtk2
и python-glade2
, которые имеют зависимости от устаревшей версии, необходимо предпринять дополнительные шаги.
Шаг 2: Установка Python
Вам потребуется установить Python 2, чтобы удовлетворить зависимости:
sudo apt install python2
Это установит Python 2.7, который соответствует требованиям зависимостей для python-gtk2
и python-glade2
.
Шаг 3: Установка зависимостей через APT
После установки Python 2 выполните команду для исправления зависимостей:
sudo apt -f install
Эта команда проверит архитектуру системы и установит недостающие пакеты, пытаясь устранить конфликты зависимостей.
Шаг 4: Обходные пути для устаревших пакетов
Если команда apt -f install
по-прежнему пытается удалить пакеты, возможно, необходимо удалить зависимости из .deb
файлов. При этом мы можем использовать утилиту dpkg-deb
.
-
Расслабьте зависимости в
.deb
файлах (вы должны это сделать с осторожностью):Извлеките содержимое пакета:
dpkg-deb -R python-gtk2_2.24.0-5.1ubuntu2_amd64.deb python-gtk2
-
Отредактируйте файл контроля, убрав зависимости на
python
, например, вы можете открыть файлDEBIAN/control
в текстовом редакторе и изменить строку с зависимостями:Depends: python2.7
Сохраните изменения и пересоберите пакет:
dpkg-deb -b python-gtk2 python-gtk2_modified.deb
-
Повторите процесс для
python-glade2
аналогичным образом.
Шаг 5: Установка модифицированных пакетов
После пересборки выполните команду для установки ваших модифицированных пакетов:
sudo dpkg -i python-gtk2_modified.deb python-glade2_modified.deb
Шаг 6: Использование Snap
Если весь процесс с установкой пакетов становится слишком сложным, вы можете рассмотреть использование Snap, так как некоторые версии FSlint доступны в виде Snap-пакетов, которые могут быть более совместимыми с новыми версиями Ubuntu. Вы можете установить его через:
sudo snap install fslint-unofficial
Заключение
Следуя этим шагам, вы сможете установить необходимые пакеты для работы вашего старого приложения. Этот процесс требует осторожности и понимания зависимостей пакетов в вашей системе. Убедитесь, что вы делаете резервные копии и осторожны при редактировании системных файлов, чтобы избежать потенциальных проблем с неработоспособностью системы.