2012-07-20 80 views
2

我需要在Linux机器上运行一个程序,并且我唯一可以访问的是我的大学服务器(由于某些原因)autoconf和automake的过期版本。我的程序需要更新的版本。我的主目录中的每个服务器都有最新版本,但由于我不是root用户,因此无法将它们安装到/ usr/local/bin中。所以我想我有两个问题:在Linux服务器上更改autoconf版本

  1. 如何获得的autoconf/automake的到安装的地方在我家目录?这可能吗?
  2. 如何让程序访问这些较新的版本,而不是自动调用过时的版本?

任何帮助将不胜感激。

+0

提到的两种常见解决方案是存储并仅使用'--prefix = $ HOME'进行安装(有些人喜欢'--prefix = $ HOME/usr',如果使用NFS挂载的主目录'--prefix = $ HOME/$(uname -m)'是方便的。)另一个好的选择是使用pkgsrc并根据需要添加/更新你的包。 – 2012-07-21 16:15:42

回答

2

我的首选方法是使用GNU Stow来管理我的主目录中的软件包。您可以使用$HOME$HOME/usr或其他任何东西。我认为$HOME/usr可能是最好的,因为它不需要走遍你的家乡。

所以首先你要配置和安装Stow。下载并解压,然后运行是这样的:

$ ./configure --prefix=$HOME/usr && make && make install prefix=$HOME/usr/stow/stow-2.2.0 

然后你做配载积载本身:

$ cd ~/usr/stow 
$ stow-2.2.0/bin/stow stow-2.2.0 

现在,添加$HOME/usr/bin$PATH。然后你安装autoconf。打开包装并将其放入CD中,然后运行:

$ ./configure --prefix=$HOME/usr && make && make install prefix=$HOME/usr/stow/autoconf-2.69 
$ cd ~/usr/stow 
$ stow autoconf-2.69 

为什么要这样做?它可以让我轻松地从我的主目录中删除一个包,而不会引起大量头痛:例如,cd ~/usr/stow && stow -D autoconf-2.69。我以类似的方式管理/usr/local,但在那里我可以从apt存储,所以没有引导问题。

2

我不太确定,但很可能都是基于autotools的,因此您可以使用./configure --prefix=${HOME}/autoprefix进行配置,然后安装。

+0

除了我建议为所有需要安装的GNU软件使用相同的前缀,所以'./configure --prefix = $ HOME/usr',然后在你的前面添加'$ HOME/usr/bin' '$ PATH' – 2012-07-20 17:34:25

+0

@BasileStarynkevitch,是的,如果必须的话,我通常会使用'$ HOME/prefix'。只是说明这项技术。 – 2012-07-20 17:36:22