Битые пакеты требуют более низкую версию Python, но установка указанной версии не решает проблему (Mint)

Вопрос или проблема

Некорректные пакеты требуют более старой версии Python, но установка указанной версии не решает проблему. Linux Mint.

setonix@setonix-System-Product-Name:~$ sudo apt-get install python3-libnvinfer-dev
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python3-libnvinfer : Depends: python3 (< 3.11) but 3.12.3-0ubuntu2 is to be installed
 python3-libnvinfer-dispatch : Depends: python3 (< 3.11) but 3.12.3-0ubuntu2 is to be installed
 python3-libnvinfer-lean : Depends: python3 (< 3.11) but 3.12.3-0ubuntu2 is to be installed
E: Unable to correct problems, you have held broken packages.

Я пробовал sudo aptitude install. Нет решений, по-видимому.
Я пытался изменить версию с помощью sudo update-alternatives --config python3
Я пробовал создать окружение с Python 3.10:

python3.10 -m venv ~/my_py310_env
source ~/my_py310_env/bin/activate

и вот результат:

setonix@setonix-System-Product-Name:~$ python3.10 -m venv ~/my_py310_env
setonix@setonix-System-Product-Name:~$ source ~/my_py310_env/bin/activate
(my_py310_env) setonix@setonix-System-Product-Name:~$ python3 --version
Python 3.10.16
(my_py310_env) setonix@setonix-System-Product-Name:~$ sudo apt-get install python3-libnvinfer-dev
[sudo] password for setonix:               
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python3-libnvinfer : Depends: python3 (< 3.11) but 3.12.3-0ubuntu2 is to be installed
 python3-libnvinfer-dispatch : Depends: python3 (< 3.11) but 3.12.3-0ubuntu2 is to be installed
 python3-libnvinfer-lean : Depends: python3 (< 3.11) but 3.12.3-0ubuntu2 is to be installed
E: Unable to correct problems, you have held broken packages.
(my_py310_env) setonix@setonix-System-Product-Name:~$ 

Также пробовал sudo apt-get upgrade и sudo apt-get clean
sudo apt-get autoclean согласно https://stackoverflow.com/questions/23035310/ubuntu-unable-to-correct-problems-you-have-held-broken-packages

Вот мой apt policy

setonix@setonix-System-Product-Name:~$ apt policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 https://packages.microsoft.com/repos/code stable/main armhf Packages
     release o=code stable,a=stable,n=stable,l=code stable,c=main,b=armhf
     origin packages.microsoft.com
 500 https://packages.microsoft.com/repos/code stable/main arm64 Packages
     release o=code stable,a=stable,n=stable,l=code stable,c=main,b=arm64
     origin packages.microsoft.com
 500 https://packages.microsoft.com/repos/code stable/main amd64 Packages
     release o=code stable,a=stable,n=stable,l=code stable,c=main,b=amd64
     origin packages.microsoft.com
 500 http://security.ubuntu.com/ubuntu noble-security/multiverse i386 Packages
     release v=24.04,o=Ubuntu,a=noble-security,n=noble,l=Ubuntu,c=multiverse,b=i386
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu noble-security/multiverse amd64 Packages
     release v=24.04,o=Ubuntu,a=noble-security,n=noble,l=Ubuntu,c=multiverse,b=amd64
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu noble-security/universe i386 Packages
     release v=24.04,o=Ubuntu,a=noble-security,n=noble,l=Ubuntu,c=universe,b=i386
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages
     release v=24.04,o=Ubuntu,a=noble-security,n=noble,l=Ubuntu,c=universe,b=amd64
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu noble-security/restricted i386 Packages
     release v=24.04,o=Ubuntu,a=noble-security,n=noble,l=Ubuntu,c=restricted,b=i386
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu noble-security/restricted amd64 Packages
     release v=24.04,o=Ubuntu,a=noble-security,n=noble,l=Ubuntu,c=restricted,b=amd64
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu noble-security/main i386 Packages
     release v=24.04,o=Ubuntu,a=noble-security,n=noble,l=Ubuntu,c=main,b=i386
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages
     release v=24.04,o=Ubuntu,a=noble-security,n=noble,l=Ubuntu,c=main,b=amd64
     origin security.ubuntu.com
 100 http://archive.ubuntu.com/ubuntu noble-backports/universe i386 Packages
     release v=24.04,o=Ubuntu,a=noble-backports,n=noble,l=Ubuntu,c=universe,b=i386
     origin archive.ubuntu.com
 100 http://archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages
     release v=24.04,o=Ubuntu,a=noble-backports,n=noble,l=Ubuntu,c=universe,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble-updates/multiverse i386 Packages
     release v=24.04,o=Ubuntu,a=noble-updates,n=noble,l=Ubuntu,c=multiverse,b=i386
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Packages
     release v=24.04,o=Ubuntu,a=noble-updates,n=noble,l=Ubuntu,c=multiverse,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble-updates/universe i386 Packages
     release v=24.04,o=Ubuntu,a=noble-updates,n=noble,l=Ubuntu,c=universe,b=i386
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages
     release v=24.04,o=Ubuntu,a=noble-updates,n=noble,l=Ubuntu,c=universe,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble-updates/restricted i386 Packages
     release v=24.04,o=Ubuntu,a=noble-updates,n=noble,l=Ubuntu,c=restricted,b=i386
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages
     release v=24.04,o=Ubuntu,a=noble-updates,n=noble,l=Ubuntu,c=restricted,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble-updates/main i386 Packages
     release v=24.04,o=Ubuntu,a=noble-updates,n=noble,l=Ubuntu,c=main,b=i386
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
     release v=24.04,o=Ubuntu,a=noble-updates,n=noble,l=Ubuntu,c=main,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble/multiverse i386 Packages
     release v=24.04,o=Ubuntu,a=noble,n=noble,l=Ubuntu,c=multiverse,b=i386
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble/multiverse amd64 Packages
     release v=24.04,o=Ubuntu,a=noble,n=noble,l=Ubuntu,c=multiverse,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble/universe i386 Packages
     release v=24.04,o=Ubuntu,a=noble,n=noble,l=Ubuntu,c=universe,b=i386
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages
     release v=24.04,o=Ubuntu,a=noble,n=noble,l=Ubuntu,c=universe,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble/restricted i386 Packages
     release v=24.04,o=Ubuntu,a=noble,n=noble,l=Ubuntu,c=restricted,b=i386
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble/restricted amd64 Packages
     release v=24.04,o=Ubuntu,a=noble,n=noble,l=Ubuntu,c=restricted,b=amd64
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble/main i386 Packages
     release v=24.04,o=Ubuntu,a=noble,n=noble,l=Ubuntu,c=main,b=i386
     origin archive.ubuntu.com
 500 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages
     release v=24.04,o=Ubuntu,a=noble,n=noble,l=Ubuntu,c=main,b=amd64
     origin archive.ubuntu.com
 500 http://packages.linuxmint.com wilma/backport i386 Packages
     release v=22,o=linuxmint,a=wilma,n=wilma,l=linuxmint,c=backport,b=i386
     origin packages.linuxmint.com
 500 http://packages.linuxmint.com wilma/backport amd64 Packages
     release v=22,o=linuxmint,a=wilma,n=wilma,l=linuxmint,c=backport,b=amd64
     origin packages.linuxmint.com
 500 http://packages.linuxmint.com wilma/import i386 Packages
     release v=22,o=linuxmint,a=wilma,n=wilma,l=linuxmint,c=import,b=i386
     origin packages.linuxmint.com
 500 http://packages.linuxmint.com wilma/import amd64 Packages
     release v=22,o=linuxmint,a=wilma,n=wilma,l=linuxmint,c=import,b=amd64
     origin packages.linuxmint.com
 700 http://packages.linuxmint.com wilma/upstream i386 Packages
     release v=22,o=linuxmint,a=wilma,n=wilma,l=linuxmint,c=upstream,b=i386
     origin packages.linuxmint.com
 700 http://packages.linuxmint.com wilma/upstream amd64 Packages
     release v=22,o=linuxmint,a=wilma,n=wilma,l=linuxmint,c=upstream,b=amd64
     origin packages.linuxmint.com
 500 http://packages.linuxmint.com wilma/main i386 Packages
     release v=22,o=linuxmint,a=wilma,n=wilma,l=linuxmint,c=main,b=i386
     origin packages.linuxmint.com
 500 http://packages.linuxmint.com wilma/main amd64 Packages
     release v=22,o=linuxmint,a=wilma,n=wilma,l=linuxmint,c=main,b=amd64
     origin packages.linuxmint.com
 600 file:/var/nv-tensorrt-local-repo-ubuntu2204-8.6.1-cuda-12.0  Packages
     release o=NVIDIA,l=NVIDIA CUDA,c=
 600 file:/var/nv-tensorrt-local-repo-ubuntu2204-10.2.0-cuda-12.5  Packages
     release o=NVIDIA,l=NVIDIA CUDA,c=
 500 https://ppa.launchpadcontent.net/graphics-drivers/ppa/ubuntu noble/main i386 Packages
     release v=24.04,o=LP-PPA-graphics-drivers,a=noble,n=noble,l=Proprietary GPU Drivers,c=main,b=i386
     origin ppa.launchpadcontent.net
 500 https://ppa.launchpadcontent.net/graphics-drivers/ppa/ubuntu noble/main amd64 Packages
     release v=24.04,o=LP-PPA-graphics-drivers,a=noble,n=noble,l=Proprietary GPU Drivers,c=main,b=amd64
     origin ppa.launchpadcontent.net
 500 https://dl.google.com/linux/chrome/deb stable/main amd64 Packages
     release v=1.0,o=Google LLC,a=stable,n=stable,l=Google,c=main,b=amd64
     origin dl.google.com
 500 http://security.ubuntu.com/ubuntu focal-security/main i386 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=main,b=i386
     origin security.ubuntu.com
 500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=main,b=amd64
     origin security.ubuntu.com
 500 https://packages.element.io/debian default/main i386 Packages
     release o=riot.im,n=default,c=main,b=i386
     origin packages.element.io
 500 https://packages.element.io/debian default/main amd64 Packages
     release o=riot.im,n=default,c=main,b=amd64
     origin packages.element.io
 500 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu noble/main i386 Packages
     release v=24.04,o=LP-PPA-deadsnakes,a=noble,n=noble,l=New Python Versions,c=main,b=i386
     origin ppa.launchpadcontent.net
 500 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu noble/main amd64 Packages
     release v=24.04,o=LP-PPA-deadsnakes,a=noble,n=noble,l=New Python Versions,c=main,b=amd64
     origin ppa.launchpadcontent.net
 600 file:/var/cudnn-local-repo-ubuntu2404-9.6.0  Packages
     release o=NVIDIA,l=NVIDIA CUDA,c=
 600 file:/var/cudnn-local-repo-ubuntu2204-8.9.7.29  Packages
     release o=NVIDIA,l=NVIDIA CUDA,c=
 600 file:/var/cuda-repo-ubuntu2404-12-6-local  Packages
     release o=NVIDIA,l=NVIDIA CUDA,c=
Pinned packages:
     nsight-compute -> 2022.4.1.6~12.0.1-4build4 with priority -1
     snapd -> 2.66.1+24.04 with priority -10
     snapd -> 2.63+24.04ubuntu0.1 with priority -10
     snapd -> 2.63+20.04ubuntu0.1 with priority -10
     snapd -> 2.62+24.04build1 with priority -10
     nsight-systems -> 2022.4.2.50~12.0.1-4build4 with priority -1

apt не знает (и не может знать) о виртуальных окружениях python. Если вы имеете в виду их использование, то вам придется установливать необходимые пакеты внутри виртуального окружения, используя pip после его активации; apt или aptitude устанавливают пакеты глобально.

.

Ответ или решение

Для решения проблемы с зависимостями пакетов в Linux Mint, связанных с версией Python, необходимо принять во внимание несколько ключевых моментов.

Анализ проблемы

Вы столкнулись с проблемой установки пакета python3-libnvinfer-dev, требующего версию Python ниже 3.11, в то время как в системе уже установлена версия 3.12.3. Попытки отката версии Python и создание виртуальной среды с использованием Python 3.10 не решают проблему, так как apt работает на глобальном уровне и не учитывает версии Python в виртуальных средах.

Решение проблемы

  1. Использование Виртуальной Среды:

    Важно понимать, что apt применяется для глобальных установок. Поэтому установка зависимостей в виртуальной среде через apt не даст ожидаемого результата. Верный путь — установить нужные пакеты непосредственно в виртуальной среде с помощью pip. Выполните следующие команды после активации виртуальной среды:

    source ~/my_py310_env/bin/activate
    pip install <необходимые_библиотеки>

    Однако учтите, что не все системные библиотеки можно установить через pip.

  2. Устройство локального репозитория:

    Если пакет python3-libnvinfer-dev необходим для работы всей системы, рассмотрите возможность создания локального репозитория с требуемой версией Python. Это может быть достигнуто путем использования контейнеров (например, Docker) или создания chroot-среды, где будет установлена более ранняя версия Python вместе с необходимыми библиотеками.

  3. Управление зависимостями:

    Проверьте, возможно, существую устаревшие или неподдерживаемые репозитории, которые могут вызывать конфликты версий. Убедитесь, что все ваши репозитории актуальны и поддерживаются вашей версией Linux Mint.

    sudo apt update
    sudo apt upgrade
  4. Работа с PPA:

    Проверьте подключенные PPA-репозитории (например, deadsnakes), которые могут влиять на версии устанавливаемых пакетов. Убедитесь, что используете актуальные репозитории и они не конфликтуют с системными версиями программного обеспечения.

  5. Использование Альтернатив:

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

Профилактика

  • Обновление документации:
    Перед установкой новых пакетов всегда проверяйте документацию и изменения в зависимости версий.

  • Копии конфигураций:
    Создавайте резервные копии ваших конфигураций и системных настроек перед внесением изменений.

Таким образом, для решения проблемы необходимо грамотно управлять версиями Python и использовать виртуальные окружения для изолированной работы пакетов и их зависимостей. Оставайтесь в курсе последних обновлений системных репозиториев, чтобы избежать конфликтов версий в будущем.

Оцените материал
Добавить комментарий

Капча загружается...