udo*_*udo 2 linux package-management python dpkg ubuntu
我有一个问题(问题 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)
Run Code Online (Sandbox Code Playgroud)
导致上述错误。
跑步
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
Run Code Online (Sandbox Code Playgroud)
导致上述错误。
跑步
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
Run Code Online (Sandbox Code Playgroud)
无法解决这个问题。
任何线索如何解决这个问题?
错误消息抱怨它/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,突触,...)。例外是/usr/local,您可以在其中做任何您喜欢的事情。如果dpkg -S /usr/lib/python2.6/site-packages告诉您该目录下没有软件包安装任何文件,您可以简单地将该目录移动到它应该在的位置:
mv /usr/lib/python2.6/site-packages /usr/local/lib/python2.6/dist-packages
Run Code Online (Sandbox Code Playgroud)
或者如果目标目录已经存在:
mv -i /usr/lib/python2.6/site-packages/* /usr/local/lib/python2.6/dist-packages/
rmdir /usr/lib/python2.6/site-packages
Run Code Online (Sandbox Code Playgroud)
如果您有要保留安装的旧策略软件包,我认为您可以使用以下解决方法:
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
Run Code Online (Sandbox Code Playgroud)
如果mv命令抱怨某些目标已存在,则需要逐案解决。
如果你使用的解决办法,为相当混乱,如果你在安装非DEB Python包准备/usr/local,如/usr/local/lib/python2.6/dist-packages将包含的dpkg管理的一些文件。此外,我不完全确定这不会导致任何包管理问题,例如以后升级或删除有问题的包时会出现错误。仅当您准备好稍后进行更多故障排除时才尝试解决方法。同样,安全的选择是在升级包之前删除有问题的python包。
| 归档时间: |
|
| 查看次数: |
14160 次 |
| 最近记录: |