如何卸载sudo make install的软件,如OpenCV

  • 如果在sudo make install时,在/build下产生了install_manifest.txt,那么可以回到/build目录,运行:

    cd opencv/build/
    sudo xargs rm < install_manifest.txt
    

    该文件记录了安装时复制的所有文件,上述命令会把他们全部删除完,剩下空的文件夹,可以自己手动去删除,例如OpenCV,OpenCV将被安装到/usr/local目录,所有文件将被复制到以下位置:
    /usr/local/bin - executable files
    /usr/local/lib - libraries (.so)
    /usr/local/cmake/opencv4 - cmake package
    /usr/local/include/opencv4 - headers
    /usr/local/share/opencv4 - other files (e.g. trained cascades in XML format)
    运行下列命令可以删除残留在/usr/local/include/opencv4和/usr/local/share/opencv4的文件夹

    cd /usr/local/share/
    sudo rm -rf opencv4/
    cd /usr/local/include/
    sudo rm -rf opencv4/
    
  • 如果没有产生install_manifest.txt文件,或者build/文件夹被删除了,可以再install一遍,把install结果写日志里,然后对应着删除install:

    sudo make install &> |tee make_install.log
    # 然后对应着删除install文件
    

    这个方法比较痛苦,需要自己逐个查看文件夹位置然后删除

  • 使用sudo checkinstall而不是sudo make install,checkinstall会在build目录中创建一个.deb包,然后将包安装到系统中(可加上参数,使其只产生.deb包,而不进行任何安装)。然后就可以用Debian的包工具以通常的方式管理它了,因为它是一个自定义包,deb包还可以安装在其他类似的系统上。
    安装时:

    ./configure
    make
    # 下列命令只产生.deb包,而不进行任何安装
    sudo checkinstall --install=no --fstrans=yes make
    # 安装.deb包
    sudo dpkg -i package_name.deb
    

    卸载时:

    sudo dpkg --purge package_name
    
上一篇:2022.1.25#约瑟夫环问题(1)——粗暴的模拟


下一篇:在线生成CSS阴影效果工具