2012-07-20 78 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