如何卸载我从source安装的gcc版本。我在ubuntu 12.04上使用gcc 4.9和我。
或者有没有办法通过ubuntu存储库升级到最新的gcc版本?
答案 0 :(得分:11)
当您从源代码构建程序包时,很遗憾,通常没有魔法卸载,但是您可以将其估算为this mailing list thread。
基本上你应该再次安装到一个临时目录中并列出在所述目录中创建的所有文件,然后你可以通过脚本从主系统中删除所有这些文件。
以下是以这种方式卸载GCC的脚本示例:
make install DESTDIR=/tmp/gccinst
find /tmp/gccinst | sed -e s,/tmp/gccinst,, | \
(while read F; do rm "$F"; done)
以root身份从gcc源目录中运行它。
要回答您的第二个问题,您可以在ubuntu repo中安装最新的gcc:
apt-get install gcc
叠加回购可能有更新的版本,我看到有一个建议,在ubuntu-toolchain-r / test(安装通过)有一个更新的版本:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
但我不确定他们是否还加了4.9。如果没有,您确实必须从源代码安装。
编辑:
看起来@roelofs在他的回答中找到了一个更好的指南来安装回购,所以去看那里并记得如果有帮助就给他一个upvote:)
答案 1 :(得分:7)
在GCC 5.1.0中,虽然没有顶级uninstall
目标,但有些目录确实有这个目标,特别是gcc
,所以你可以这样做:
cd build/gcc
sudo make uninstall
这不会删除已安装的所有内容,但会删除该目录中包含的gcc
,g++
,cpp
等主要可执行文件,因此可能已足够。< / p>
答案 2 :(得分:6)
Vality有一个很好的开始
make install DESTDIR=/tmp/gccinst
但他的清理命令有一些问题。首先,它将目录传递给rm
,包括通常的目录(例如/usr
)。我们可以通过-type f
:
find /tmp/gccinst -type f | sed -e s,/tmp/gccinst,, | \
(while read F; do rm "$F"; done)
摆脱这个留空的目录...
find /tmp/gccinst -depth -type d -not -empty | sed -e s,/tmp/gccinst,, | \
(while read F; do rmdir -p --ignore-fail-on-non-empty "$F"; done)
答案 3 :(得分:1)
加入Vality和Ben。如果您从自己的登录shell执行此操作:
find $HOME/tmp/gccinst/ -type f | sed -e s,$HOME/tmp/gccinst,, | (while read F; do rm **-f** "$F" ; done)
需要-f
标记,否则如果出现某些权限问题,脚本可能无法运行。
答案 4 :(得分:0)
以下操作确实可以。当您从源代码制作一个gcc并在gcc-build上进行安装时,它将在源代码的最高方向生成一个gcc方向。 cd $ source_code_top / gcc,然后进行卸载。它会清除从Linux系统中删除gcc的信息。
答案 5 :(得分:0)
/root/ihome3/gcc-4.6.3/gcc-build-4.6.3/gcc
[root@izwz93atpyz gcc]# make uninstall
rm -rf /usr/local/bin/c++
rm -rf /usr/local/bin/g++
rm -rf /usr/local/share/man/man1/g++.1
rm -rf /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.6.3
rm -rf /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.6.3
rm -rf /usr/local/bin/gcc
rm -f /usr/local/bin/cpp
if [ x != x ]; then \
rm -f /usr/local//cpp; \
else true; fi
rm -rf /usr/local/bin/gcov`enter code here`
rm -rf /usr/local/share/man/man1/gcc.1
rm -rf /usr/local/share/man/man1/cpp.1
rm -f /usr/local/share/info/cpp.info* /usr/local/share/info/gcc.info*
rm -f /usr/local/share/info/cppinternals.info* /usr/local/share/info/gccint.info*
[root@izwz93atpalb56zydy9bpyz gcc]# pwd
/root/ihome3/gcc-4.6.3/gcc-build-4.6.3/gcc
答案 6 :(得分:-2)
12.04存储库中GCC的最高可用版本是4.6。您可以使用包管理器安装较新版本,但您必须添加PPA。 This链接应该会有所帮助,虽然它适用于较旧版本的GCC(但可以用于最新版本)。
正如评论者指出的那样,如果您自己构建的GCC版本是使用--prefix
参数编译的,那么整个安装应位于/usr/local
下的目录或您安装它的任何位置,并且可以是除去。