Вопрос или проблема
Некорректные пакеты требуют более старой версии 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 в виртуальных средах.
Решение проблемы
-
Использование Виртуальной Среды:
Важно понимать, что
apt
применяется для глобальных установок. Поэтому установка зависимостей в виртуальной среде черезapt
не даст ожидаемого результата. Верный путь — установить нужные пакеты непосредственно в виртуальной среде с помощьюpip
. Выполните следующие команды после активации виртуальной среды:source ~/my_py310_env/bin/activate pip install <необходимые_библиотеки>
Однако учтите, что не все системные библиотеки можно установить через
pip
. -
Устройство локального репозитория:
Если пакет
python3-libnvinfer-dev
необходим для работы всей системы, рассмотрите возможность создания локального репозитория с требуемой версией Python. Это может быть достигнуто путем использования контейнеров (например, Docker) или создания chroot-среды, где будет установлена более ранняя версия Python вместе с необходимыми библиотеками. -
Управление зависимостями:
Проверьте, возможно, существую устаревшие или неподдерживаемые репозитории, которые могут вызывать конфликты версий. Убедитесь, что все ваши репозитории актуальны и поддерживаются вашей версией Linux Mint.
sudo apt update sudo apt upgrade
-
Работа с PPA:
Проверьте подключенные PPA-репозитории (например,
deadsnakes
), которые могут влиять на версии устанавливаемых пакетов. Убедитесь, что используете актуальные репозитории и они не конфликтуют с системными версиями программного обеспечения. -
Использование Альтернатив:
В случае если подходящие решения не работают, и вам необходима конкретная версия библиотеки, рассматривается возможность использования контейнеризации или даже альтернативных программных решений.
Профилактика
-
Обновление документации:
Перед установкой новых пакетов всегда проверяйте документацию и изменения в зависимости версий. -
Копии конфигураций:
Создавайте резервные копии ваших конфигураций и системных настроек перед внесением изменений.
Таким образом, для решения проблемы необходимо грамотно управлять версиями Python и использовать виртуальные окружения для изолированной работы пакетов и их зависимостей. Оставайтесь в курсе последних обновлений системных репозиториев, чтобы избежать конфликтов версий в будущем.