我需要在我的 Fedora 机器上编译一些软件。最好把它放在哪里,以免干扰打包的软件?
答案1
经验法则,至少在 Debian 风格的系统上:
/usr/local
对于“系统范围”的内容,即/usr/local
往往位于发行版的默认目录中$PATH
,并遵循标准 UNIX 目录层次结构/usr/local/bin
,如/usr/local/lib
、 等。/opt
对于您不信任在系统范围内制作的内容,使用每个应用程序的前缀 - 即/opt/firefox-3.6.8
,/opt/mono-2.6.7
,等等。这里的东西需要更仔细的管理,但也不太可能破坏您的系统,并且更容易删除,因为您只需删除该文件夹,它就会消失。
答案2
如果您真的不想让它干扰,请不要将其放在您的$PATH
.
如果您想要它$PATH
,至少确保不要安装到/usr/local
.我发现很多软件即使是由发行版安装到/usr
.
我最喜欢的安装自定义编译软件的方式是在我的$HOME
目录中。这样您就不必使用sudo
任何东西,并且它可以很好地与系统的其他部分分开。例如:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
如果您愿意,您可以将其添加/home/username/stage/bin
到您的$PATH
.
答案3
FHS 说把它放在 /usr/local发行版不应该触及它的地方。 对于源和库的/usr/local/bin
二进制文件。请参阅/usr/local/src
/usr/local/lib
FHS规格了解更多信息
答案4
把它们放到/usr/local/src
.
我所做的就是提取该目录中的源代码。它将创建一条类似的路径
/usr/local/src/postgresql-8.3.7
然后我创建一个指向它的符号链接:
/usr/local/src # ln -s postgresql-8.3.7 postgresql
做你所有的建筑/usr/local/src/postgresql
。
当您需要在版本之间切换并记录您正在使用的版本时,这种方式会有所帮助。