关于使用不良方法的注意事项

关于使用不良方法的注意事项

我正在尝试完全删除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.671.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

相关内容