如何在 Ubuntu 中删除已安装的 C++ 库? [复制]
Posted
技术标签:
【中文标题】如何在 Ubuntu 中删除已安装的 C++ 库? [复制]【英文标题】:How do I remove installed C++ libraries in Ubuntu? [duplicate] 【发布时间】:2014-09-21 14:10:36 【问题描述】:我最近从http://itpp.sourceforge.net/4.3.1/index.html 安装了it++,一个C++ 信号处理库,方法是下载zip 文件,进行cmake、make 和make install。
我现在想完全撤消安装并重新安装。这是一个基本问题,但是如何在 Ubuntu 中删除它++?一般来说,我使用什么命令来删除 linux 中已安装的 C/C++ 库?
谢谢。
【问题讨论】:
make 卸载似乎不起作用。我运气不好? @user2510050 您必须在与运行make install
的目录相同的目录中运行 make uninstall
@bikram990 是的,我在运行 make install 的同一目录中运行了 make uninstall,但卸载不是 makefile 中定义的目标。 polarysekt 建议通过 apt-get 安装它,这似乎是一种避免头痛的简单方法。
@user2510050 谢谢指出,我不知道它没有在makefile中定义。
@user2510050 ,您可以使用checkinstall
(sudo apt-get install checkinstall
) 来uninstall
与sudo make install
一起安装的软件。它会生成一个 deb 文件,然后您可以使用 dpkg -i deb-file
安装该文件,然后使用 dpkg -r package_name
卸载该文件。更多信息在这里 (***.com/a/14516283)。运行checkinstall
时一定要改包名。
【参考方案1】:
libitpp-dev
包在 Ubuntu 中可用:
https://launchpad.net/ubuntu/+source/libitpp
仔细阅读Ben 在他的评论中建议重复的帖子——What's the opposite of 'make install', ie. how do you uninstall a library in Linux? 这表明类似于
# make uninstall
shengy 在他的评论中建议,在您最初安装的目录中运行(回复:bikram990)
请务必仔细阅读 cmets 以避免常见的“陷阱”,包括意外删除与其他包相关的依赖项。
正如该帖子的答案所述,第二个选项是找出构建步骤并手动反转它们,使用
$ make -n uninstall
命令找出那些是什么。如果事实证明您确实必须手动进行一些修剪,请再次注意您删除的内容,以防您在此过程中不小心破坏了其他包。
建议通过你的包管理器安装包,以避免复杂化和可能出现的问题,尤其是如果你不是 100% 确定你在用 cmake 做什么,或者至少对如何使用有点警惕在卸载的情况下继续。
然后可以安装包:
$ sudo apt-get install libitpp-dev
这个理由是坚持使用官方存储库/包的一个很好的理由,因为可以通过以下方式进行逆转:
$ sudo apt-get uninstall libitpp-dev
您的包管理器将处理日常细节,例如依赖性检查、更新,并且通常会确保您在安装或卸载时不会破坏任何其他包。
此外,您的官方软件包可能包含一些特定于 Ubuntu 的补丁。
如果特定软件包无法通过官方渠道获得,手动安装软件包是可以理解的,但是您知道特定软件包作者的心血来潮,他们可能没有在您的特定系统上彻底测试过功能.
祝你好运。
【讨论】:
非常感谢!我不知道 itpp 可以通过 apt-get 获得。回想起来,我应该在尝试手动安装库之前完成“apt-cache search itpp”。 理想情况下,pkg 对于您的目的来说是最新的。有时发行版会落后,例如lmms
。当我在我的 Debian 发行版上使用 v0.4.10-2.3 时,我 emerged
我的一个 Gentoo 发行版上的软件包,最终惊讶地看到 v1.0.0 具有所有新功能和一个光滑的新界面。检查作者的站点@sourceforge,我发现它们最高为 1.0.2——我必须拥有它,但发现它在 Debian 上仍然不可用,但已被标记为紧急。所以我下载并构建了它,但只是在原地运行而不是安装,以避免这个问题。
注意:它从来没有没有一点挫败感,因为在原地运行需要一点调整,以移动编译的.so(仪器插件 - 基本上所有有用的东西)到不同的文件夹,以便应用程序可以找到它。在库的情况下,就地构建可能需要在最终构建过程中进行一些技巧,可能使用不同的链接路径-L
并包含路径-I
,因为它们可能位于~/mybuilds/
之类的地方。 以上是关于如何在 Ubuntu 中删除已安装的 C++ 库? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C++ 中拆分字符串而不将其他库安装到标准 Ubuntu 版本? [复制]