Существует подобный вопрос, склонный - добираются, не может установить определенную версию, перечисленную в политике способного кэша. Но это не мой случай.
Я хочу установить определенную более старую версию новинки Python (1:2013.2.3-0ubuntu1~cloud0), но отказавший, это что я сделано:
root@ip-10-20-17:~# apt-cache policy python-nova
python-nova:
Installed: (none)
Candidate: 1:2014.1.3-0ubuntu1~cloud0.1
Version table:
1:2014.1.3-0ubuntu1~cloud0.1 0
900 http://apt.myserver.com/game-cloud-ops/ precise/main amd64 Packages
1:2014.1.2-0ubuntu1.1~cloud0-5 0
900 http://apt.myserver.com/game-cloud-ops/ precise/main amd64 Packages
1:2014.1.2-0ubuntu1.1~cloud0-4 0
900 http://apt.myserver.com/game-cloud-ops/ precise/main amd64 Packages
1:2014.1.2-0ubuntu1.1~cloud0-2 0
900 http://apt.myserver.com/game-cloud-ops/ precise/main amd64 Packages
1:2014.1.2-0ubuntu1.1~cloud0~-1 0
900 http://apt.myserver.com/game-cloud-ops/ precise/main amd64 Packages
1:2014.1.2-0ubuntu1.1~cloud063 0
900 http://apt.myserver.com/game-cloud-ops/ precise/main amd64 Packages
1:2014.1.2-0ubuntu1.1~cloud062 0
900 http://apt.myserver.com/game-cloud-ops/ precise/main amd64 Packages
1:2014.1.2-0ubuntu1.1~cloud061 0
900 http://apt.myserver.com/game-cloud-ops/ precise/main amd64 Packages
1:2014.1.2-0ubuntu1.1~cloud0~3 0
900 http://apt.myserver.com/game-cloud-ops/ precise/main amd64 Packages
1:2013.2.3-0ubuntu1~cloud0 0
-10 http://apt.myserver.com/ubuntu-cloud-archive/ precise-updates/havana/main amd64 Packages
2012.1.3+stable-20130423-e52e6912-0ubuntu1.4 0
900 http://mirror.myserver.com/ubuntu/ precise-security/main amd64 Packages
900 http://mirror.myserver.com/ubuntu/ precise-updates/main amd64 Packages
2012.1-0ubuntu2 0
900 http://mirror..myserver.com/ubuntu/ precise/main amd64 Packages
root@ip-10-20-17:~# apt-get -o Debug::pkgProblemResolver=yes install python-nova=1:2013.2.3-0ubuntu1~cloud0
Reading package lists... Done
Building dependency tree... 0%
Building dependency tree
Reading state information... Done
Starting
Starting 2
Investigating (0) python-nova [ amd64 ] < none -> 1:2014.1.3-0ubuntu1~cloud0.1 > ( python )
Broken python-nova:amd64 Depends on python-anyjson [ amd64 ] < none -> 0.3.3-1~cloud0 > ( python ) (>= 0.3.3)
.....
.....
.....
The following packages have unmet dependencies:
python-nova : Depends: python-anyjson (>= 0.3.3) but 0.3.1-1build1 is to be installed
Depends: python-boto (>= 2.4.0) but 2.2.2-0ubuntu3 is to be installed
Depends: python-cinderclient (>= 1:1.0.5) but it is not installable
Depends: python-eventlet (>= 0.13.0) but 0.9.16-1ubuntu4.2 is to be installed
Depends: python-greenlet (>= 0.3.2) but 0.3.1-1ubuntu5.1 is to be installed
Depends: python-glanceclient (>= 1:0.9.0) but it is not installable
Depends: python-keystoneclient (>= 1:0.3.2) but 2012.1-0ubuntu1 is to be installed
Depends: python-neutronclient (>= 1:2.3.0) but it is not installable
Depends: python-jsonschema (>= 1.3.0) but it is not installable
Depends: python-kombu (>= 2.5.12) but 1.4.3-1 is to be installed
Depends: python-netaddr (>= 0.7.6) but 0.7.5-4build2 is to be installed
Depends: python-oslo.config (>= 1:1.2.0) but it is not installable
Depends: python-paramiko (>= 1.8.0) but 1.7.7.1-2ubuntu1 is to be installed
Depends: python-sqlalchemy-ext (>= 0.7.8-1~) but 0.7.4-1ubuntu0.1 is to be installed or
python-sqlalchemy (< 0.6.3-2) but 0.7.4-1ubuntu0.1 is to be installed
Depends: python-stevedore (>= 0.10) but it is not installable
Depends: python-webob (>= 1.2.3) but 1.1.1-1ubuntu0 is to be installed
Depends: python-pbr but it is not installable
Depends: python-sqlalchemy (>= 0.8~) but 0.7.4-1ubuntu0.1 is to be installed
E: Unable to correct problems, you have held broken packages.
Мне жаль. Я избегаю отправлять некоторую важную информацию. Пакеты зависимостей там, но политика способного кэша не делает предпочитает их, например:
root@ip-10-20-17:~# apt-cache policy python-anyjson
python-anyjson:
Installed: (none)
Candidate: 0.3.1-1build1
Version table:
0.3.3-1~cloud0 0
-10 http://apt.myserver.com/ubuntu-cloud-archive/ precise-updates/havana/main amd64 Packages
0.3.1-1build1 0
900 http://mirror.myserver.com/ubuntu/ precise/main amd64 Packages
0.3.3-1~cloud0 python-anyjson там, но политика способного кэша не делает предпочитает его. Что делает приоритет-10 средних?
Наконец, я выясняю его от подсказки , Как запретить определенному пакету быть установленным?
To block the installation of a given package we may put the following lines in /etc/apt/preferences
Package:
Pin: origin ""
Pin-Priority: -1
существует такая конфигурация на моем сервере после комнаты это, это работает
root@ip-10-20-17:~# cat /etc/apt/preferences.d/00fix_codename
Explanation: Uninstall or do not install any other DISTRIB_CODENAME
Explanation: package versions other than those in the precise distro
Package: *
Pin: release n=precise
Pin-Priority: 900
Package: *
Pin: release n=*
Pin-Priority: -10
Спасибо за всех, кто касается этим issuse, особенно Henning Kockerbeck.
Пакеты могут иметь зависимости от других пакетов. В Вашем случае, python-nova
зависит от python-anyjson
, python-boto
, python-cinderclient
и так далее. Так, для установки python-nova
, те пакеты должны быть установлены также.
Эта зависимость является также определенной для версии. Устанавливать python-nova
из определенной версии необходимо установить зависимость пакетов определенных версий, также. Например, для python-nova
в версии 1:2013.2.3-0ubuntu1~cloud0 Вам было бы нужно python-anyjson
в версии 0.3.3 или позже, но только 0.3.1-1build1 версия доступна:
python-nova : Depends: python-anyjson (>= 0.3.3) but 0.3.1-1build1 is to be installed
Так, не только необходимо проверить ли python-nova
самостоятельно доступно в версии, в которой Вы нуждаетесь, но также и ли все пакеты python-nova
зависит от, доступны в соответствующих версиях, также. Те пакеты это python-nova
зависит от, может иметь другие зависимости также.
Из-за этого я предложил бы перепроверить, нужна ли Вам действительно та определенная версия. Это может стать стычкой для удовлетворения всех зависимостей пакета A, затем все зависимости depencies A, затем... Вы могли также изучить использование другого распределения или более старого релиза Ubuntu, где версия python-nova
Вам нужно, значение по умолчанию, и Вы не должны обрабатывать все зависимости сами. Это, конечно, высоко зависит от деталей того, что Вы намереваетесь сделать.