我按下按键,发出了命令:
sudo rm /usr/bin/python*
问题就从此开始了。Python 仍然可以启动,但是当我现在想用 dpkg 做任何事情时,我得到了这个错误(由于错误消息太长,所以没有包含完整的错误消息):
AttributeError: 'module' object has no attribute 'pydebug'
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/python-papyon_0.5.5-1ubuntu3.1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
因此基本上 papyon/pydebug 或 dpkg 似乎造成了问题。我尝试过类似
sudo apt-get -f install
sudo apt-get --fix-missing install
在另一个论坛中提到了同样的问题:在 Ubuntu 上:我删除了 /usr/bin/python2.7 - 请帮忙
但无济于事。似乎无论我用 dpkg 做什么,我都会得到同样的错误。我天真地尝试这样做:
sudo cp /usr/lib/python2.7 /usr/bin/python2.7
sudo ln -s /usr/bin/python2.7 /usr/bin/python
但那没有用。
任何帮助都将不胜感激。
答案1
这是一个有趣的失误;我总是喜欢用来sudo echo /path/to/files/*glob*
看看文件具体来说我准备先删除,然后再将 改为echo
。rm
现在你也学到了教训!真有趣。
除了说教之外,这个问题应该不难解决,但需要经过几次“尝试”。deb
包就是ar(1)
包,可以通过以下方式轻松操作ar(1)
:
$ ar xv /var/cache/apt/archives/python-papyon_0.5.5-1ubuntu1.3_all.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz
尝试这个:
mkdir /tmp/fixing_python
cd /tmp/fixing_python
ar xv /var/cache/apt/archives/<package_for_overwriting>
cd /
tar zxvf /tmp/fixing_python/data.tar.gz
对每个需要“修复”的包进行迭代。如果您已经安装,命令行选项可能会有所debsums(1)
帮助。-c
debsums(1)
请注意,tar
这里的命令有点“破坏性”——它会覆盖它需要覆盖的所有内容。如果您更愿意查看所有内容将解压的内容,请提前跳过此cd /
步骤,而是tar(1)
将其解压到目录中,这样您就有机会查看所做的操作。
一旦你把所有需要的东西都整理好,我会努力dpkg(1)
通过自己的机制再次获得“快乐”。(control.tar.gz
包含控制脚本在升级、安装、卸载等操作时执行。我只是让你跳过所有这些,认为一旦你重新安装了 Python,你就可以使用dkpg(1)
它来解决问题。)
我们确实安装了不同的软件包,但这可能有助于您找出哪些软件包需要修复:
$ dpkg -S /usr/bin/python*
python-minimal: /usr/bin/python
python2.6-minimal: /usr/bin/python2.6
python2.7-minimal: /usr/bin/python2.7
python3-minimal: /usr/bin/python3
python3.2-minimal: /usr/bin/python3.2
python3.2-minimal: /usr/bin/python3.2mu
$
请注意,你可以直接从存档中下载包,而无需使用apt-get(8)
。它们只是 HTTP 站点,http://packages.debian.org或者http://packages.ubuntu.comwget(1)
使用或可以很容易地获取您需要的包curl(1)
。
更新
哦,是的,请注意,这/usr/lib/python*
是保存 Python 库和模块的地方。/usr/bin/python*
是保存 Python 解释器的地方。您尝试修复问题,但cp /usr/lib/python2.7 /usr/bin/python2.7
没有帮助。还有/usr/lib/python2.7
一个目录,但/usr/bin/python
应该是(并且曾经是)单个可执行文件。请随意rm -r /usr/bin/python2.7 /usr/bin/python
。