我正在尝试完全删除Boost 1.71
。我需要从Boost 1.71
我收到的版本降级到以前的工作库'boost::placeholders' has not been declared
,所以我想降级到Boost 1.66
。
在终端上输入后,ldconfig
只剩下一个实例:
emanuele@emanuele-pc:~$ ldconfig -p | grep libboost
libboost_thread.so.1.71.0 (libc6,x86-64) => /lib/x86_64-linux-gnu/libboost_thread.so.1.71.0
我尝试使用以下方法删除它:
sudo rm -f /lib/x86_64-linux-gnu/libboost_*
sudo rm -rf /lib/x86_64-linux-gnu/libboost_*
但仍然libboost_thread
存在..
因此我尝试通过访问sudo synaptic
并尝试从那里删除它但收到以下broken package
警告:
因此我认为肯定是出了什么问题,于是我做了以下事情:
sudo apt-get update --fix-missing
udo apt-get install -f
但什么也没有...libboost_thread
仍然在那里。
我如何确保所有内容均已完全删除?
答案1
关于使用不良方法的注意事项
执行如下命令
sudo rm -f /lib/x86_64-linux-gnu/libboost_* sudo rm -rf /lib/x86_64-linux-gnu/libboost_*
绝对是错误的。不要这样做!
此类库文件由 APT 控制,您应该先要求 APT 删除此类文件。
如果你手动编译了这些库,那么你做错了。它们应该放在前缀中/usr/local/lib
。它不受 APT 控制。
注意'boost::placeholders'
实际上,这个命名空间在 Boost 中都有使用1.67和1.71哪个是已发货使用来自官方存储库的 Ubuntu 20.04 LTS。要成功进行基于 Boost 的开发,您必须安装以下开发包:
对于已安装的 1.71 -
sudo apt-get install libboost1.71-all-dev --reinstall
对于可能的 1.67 替代方案 -
sudo apt-get install libboost1.67-all-dev
进一步说明
如果您真的明白自己想做什么,请阅读下文。
您可以使用以下一行代码删除所有出现的 Boost 1.71:
sudo apt autopurge $(dpkg -l | grep boost | grep 1.71 | awk '{print $2}')
仅删除libboost_thread.so.1.71.0
你必须执行:
sudo apt purge libboost-thread1.71.0
如果上述命令失败,则进入较低级别并作为后备命令执行
sudo dpkg --purge --force-all libboost-thread1.71.0
然后运行
sudo apt-get install -f
sudo dpkg --configure -a