2

У меня была проблема (вопрос 199582), которая была решена. К сожалению, я застрял в этой точке сейчас.

Бег

root@X100e:/var/cache/apt/archives# apt-get dist-upgrade 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  file libexpat1 libmagic1 libreadline6 libsqlite3-0 mime-support python python-minimal python2.6 python2.6-minimal readline-common
0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/5,204kB of archives.
After this operation, 19.7MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
(Reading database ... 6108 files and directories currently installed.)
Unpacking python2.6-minimal (from .../python2.6-minimal_2.6.6-5ubuntu1_i386.deb) ...
new installation of python2.6-minimal; /usr/lib/python2.6/site-packages is a directory
which is expected a symlink to /usr/local/lib/python2.6/dist-packages.
please find the package shipping files in /usr/lib/python2.6/site-packages and
file a bug report to ship these in /usr/lib/python2.6/dist-packages instead
aborting installation of python2.6-minimal
dpkg: error processing /var/cache/apt/archives/python2.6-minimal_2.6.6-5ubuntu1_i386.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/python2.6-minimal_2.6.6-5ubuntu1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

приводит к ошибке выше.

Бег

root@X100e:/var/cache/apt/archives# dpkg -i python2.6-minimal_2.6.6-5ubuntu1_i386.deb 
(Reading database ... 6108 files and directories currently installed.)
Unpacking python2.6-minimal (from python2.6-minimal_2.6.6-5ubuntu1_i386.deb) ...
new installation of python2.6-minimal; /usr/lib/python2.6/site-packages is a directory
which is expected a symlink to /usr/local/lib/python2.6/dist-packages.
please find the package shipping files in /usr/lib/python2.6/site-packages and
file a bug report to ship these in /usr/lib/python2.6/dist-packages instead
aborting installation of python2.6-minimal
dpkg: error processing python2.6-minimal_2.6.6-5ubuntu1_i386.deb (--install):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 python2.6-minimal_2.6.6-5ubuntu1_i386.deb

приводит к ошибке выше.

Бег

root@X100e:/var/cache/apt/archives# dpkg -i --force-depends python2.6-minimal_2.6.6-5ubuntu1_i386.deb 
(Reading database ... 6108 files and directories currently installed.)
Unpacking python2.6-minimal (from python2.6-minimal_2.6.6-5ubuntu1_i386.deb) ...
new installation of python2.6-minimal; /usr/lib/python2.6/site-packages is a directory
which is expected a symlink to /usr/local/lib/python2.6/dist-packages.
please find the package shipping files in /usr/lib/python2.6/site-packages and
file a bug report to ship these in /usr/lib/python2.6/dist-packages instead
aborting installation of python2.6-minimal
dpkg: error processing python2.6-minimal_2.6.6-5ubuntu1_i386.deb (--install):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 python2.6-minimal_2.6.6-5ubuntu1_i386.deb

не может это исправить.

Любые подсказки, как это исправить?

1 ответ1

9

Сообщение об ошибке сообщает, что /usr/lib/python2.6/site-packages - это каталог, но должен быть символической ссылкой. Наиболее вероятное объяснение состоит в том, что у вас установлены некоторые пакеты, которые не соответствуют текущей политике упаковки Python (где дополнительные пакеты идут в /usr/lib/python2.6/dist-packages), но вместо этого поместите файлы в /usr/lib/python2.6/site-packages .

Запустите dpkg -S /usr/lib/python2.6/site-packages чтобы увидеть, какие у вас есть пакеты, которые не соответствуют текущей политике. Сообщение об ошибке побуждает вас сообщать об ошибке в этих пакетах.

Простое решение - удалить оскорбительные пакеты.

Другая возможность состоит в том, что вы установили что-то в /usr/lib/python2.6/dist-packages без прохождения через менеджер пакетов deb. В этом случае переместите эти вещи в /usr/local/lib/python2.6/dist-packages . Вообще говоря, вы не должны устанавливать или изменять что-либо в /usr кроме как через dpkg или программы более высокого уровня, которые его вызывают (apt-get , aptitude , Synaptic, ...). Исключением является /usr/local , где вы можете делать все что угодно. Если dpkg -S /usr/lib/python2.6/site-packages сообщит вам, что ни один пакет не установил файл в этом каталоге, вы можете просто переместить каталог туда, где он должен быть:

mv /usr/lib/python2.6/site-packages /usr/local/lib/python2.6/dist-packages

или если целевой каталог уже существует:

mv -i /usr/lib/python2.6/site-packages/* /usr/local/lib/python2.6/dist-packages/
rmdir /usr/lib/python2.6/site-packages

Если у вас есть пакеты старой политики, которые вы хотите сохранить установленными, я думаю, что вы можете использовать следующий обходной путь:

mkdir -p /usr/local/lib/python2.6/dist-packages
mv -i /usr/lib/python2.6/site-packages/* /usr/local/lib/python2.6/dist-packages
rmdir /usr/lib/python2.6/site-packages
ln -s /usr/local/lib/python2.6/dist-packages /usr/lib/python2.6/site-packages

Если команды mv жалуются на то, что некоторые цели уже существуют, это необходимо решать в каждом конкретном случае.

Если вы используете обходной путь, будьте готовы к значительной путанице, если вы устанавливаете не-deb пакеты Python в /usr/local , так как /usr/local/lib/python2.6/dist-packages будет содержать некоторые файлы, управляемые dpkg. Также я не совсем уверен, что это не вызовет каких-либо проблем с управлением пакетами в будущем, таких как ошибки, если вы позже обновите или удалите нарушающие пакеты. Попытайтесь обойти эту проблему только в том случае, если вы готовы к дальнейшему устранению неполадок. Опять же, безопасным вариантом является удаление нарушающих пакетов перед обновлением пакета python .

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