![使用 checkinstall 安装的库创建了一个名为“python”的包并导致依赖性问题](https://linux22.com/image/1138114/%E4%BD%BF%E7%94%A8%20checkinstall%20%E5%AE%89%E8%A3%85%E7%9A%84%E5%BA%93%E5%88%9B%E5%BB%BA%E4%BA%86%E4%B8%80%E4%B8%AA%E5%90%8D%E4%B8%BA%E2%80%9Cpython%E2%80%9D%E7%9A%84%E5%8C%85%E5%B9%B6%E5%AF%BC%E8%87%B4%E4%BE%9D%E8%B5%96%E6%80%A7%E9%97%AE%E9%A2%98.png)
我想尝试一下名为 gtsam 的 C++ 库的新主要版本。由于我目前正在为几个项目使用该库的旧版本,并且我不确定依赖性问题,因此我决定使用 checkinstall 来安装它:
mkdir build && cd build
make
sudo checkinstall
因为它附带了一个我也想安装的 python 包装器,所以我这样做了:
cd python
sudo checkinstall python setup.py install
现在我想再次删除该版本,因此我检查了该库安装在哪个包名下。
主库被称为“build”,我已经发现它很奇怪,尽管我可以使用以下命令将其删除:
sudo dkpg -r build
当我现在尝试做同样的事情时:
sudo dpkg -r python
它抱怨依赖性问题,因为它将“python”解释为主要的 ubuntu python 包。
如果我这样做,dpkg -l python
我会得到:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=============================================-===========================-===========================-==================================================
ri python 20160629-1 amd64 Python part of gtsam-4.0.0-alpha1.
此时我实际上有点害怕,不知道该怎么做才能解决这个问题。我想卸载安装的文件,但又checkinstall python setup.py install
不想破坏系统 python 设置的配置。
我实际上使用了 checkinstall,因为我确实不是想要担心恢复安装...
答案1
好的,我认为我解决了这个问题。
我发现apt-cache showpkg python
我可以查看所有可用的不同 Python 版本。我选择了最新版本并使用以下命令进行安装:
sudo apt-get install python=2.7.5-5ubuntu3
它向我发出警告,它无法删除某些“旧目录”:
dpkg: warning: unable to delete old directory '/usr/local/lib/python2.7/dist-packages': Directory not empty
dpkg: warning: unable to delete old directory '/usr/local/lib/python2.7': Directory not empty
dpkg: warning: unable to delete old directory '/usr/local/lib': Directory not empty
dpkg: warning: unable to delete old directory '/usr/local': Directory not empty
但没关系,因为我确实尝试过解决这个问题没有删除这些目录。
现在如果我执行,dpkg -l python
我会得到以下正确的输出:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=============================================-===========================-===========================-====================================================================
ii python 2.7.5-5ubuntu3 amd64 interactive high-level object-oriented language (default version)
我会监视我的系统是否出现更多奇怪的行为,但目前看来这已经解决了这个问题。