2010-07-09 212 views
18

我有權訪問公共庫中的計算機,我想嘗試一些C++或其他代碼。問題是沒有安裝g ++,我無法使用軟件包進行安裝,因爲我沒有root權限。是否有一種「智能」的方式爲家庭文件夾中的編程提供完整的環境?在沒有root權限的Linux上安裝gcc

我已經安裝了gcc(我可以編譯C代碼)。另外,我有一個始終一致的主文件夾。我不知道在哪裏可以找到預編譯的g ++,我只找到源代碼,但我不知道該怎麼做。我試圖讓他們安裝這個,但它沒有工作:)

+0

庫是否安裝了gcc? – Omnifarious 2010-07-09 11:27:54

+0

我可以使用gcc編譯C源代碼。 – 2010-07-09 13:41:36

回答

8

您可以使用--prefix參數運行配置腳本:../gcc-4.5.0/configure --prefix=/home/foo/bar。由於C++標準庫很可能與系統上的不同,因此必須先設置export LD_LIBRARY_PATH=/home/foo/bar/lib,然後才能啓動此編譯器編譯的程序。

+2

這取決於是否有一個現有的編譯器工具鏈來引導。 – reece 2010-07-09 11:39:30

+1

和頭文件。 – Omnifarious 2010-07-09 11:42:20

+0

我試過./configure --prefix = ...但它給了我: configure:error:在「。」中找不到install-sh,install.sh或shtool。 「./ ..」「./../ ..」 – 2010-07-09 11:44:08

1

曾經很久以前(1992年左右),當我購買沒有開發環境的SCO系統時,我經歷了類似的事情。引導它擁有一個完整的開發環境是一個巨大的痛苦,並不容易。在系統上安裝庫頭文件或gcc可以讓你的工作變得更加簡單。

這很大程度上取決於圖書館對於安裝什麼類型的東西有多麼討厭。如果那裏沒有gcc,那麼你的工作會變得更加困難。如果沒有glibc的頭文件,那麼你的工作很難。

另外,你有沒有在系統上的帳戶,所以你有一個從登錄到登錄一致的主文件夾?

如果您沒有gcc,那麼您需要找到預編譯的gcc/g ++二進制文件並將其安裝到某處。如果你沒有頭文件,你需要找到這些文件的副本並將它們放到系統中。

雖然沒有在您的個人文件夾中安裝gcc的「標準」方法。所有的解決方案都會涉及一些手動滾動方式。

您是否問過圖書管理員是否可以更改已安裝的內容,因爲您想了解一些編程知識並且只能訪問他們的計算機來執行此操作?這可能是最簡單的解決方案。

從你的評論看來,你確實有gcc,如果你可以編譯C代碼,你有庫頭文件。所以現在就需要編寫自己的g++版本。您可能會找到一種方法來誘使系統上的軟件包管理器在除系統文件夾以外的其他位置安裝二進制軟件包。我認爲這個解決方案比編譯自己的解決方案更有趣,我想也可能存在一些可能的微妙問題,因爲安裝的軟件包可能希望在特定位置找到某些東西,而不是在那裏找到它們。

首先要做的是確保你已經下載了gcc包的正確源代碼。找到的地方是GNU United States mirror page。您想在您選擇的鏡像網站上找到gcc-4.5.0.tar.bz2gcc-4.5.0.tar.gz文件。它可能位於gcc目錄和gcc-4.5.0子文件夾中。

下載完成後,您應該解壓縮它。一般來說,你不應該在你解壓到的文件夾中建立gcc。因此,創建另一個兄弟文件夾,您實際上想要在標有gcc-build的位置創建它。然後你想要的命令是../gcc-4.5.0/configure --prefix=$HOME/.local --enable-languages='c c++'

gcc確實需要安裝一些其他軟件包以便能夠自行編譯。您可以對這些軟件包使用相同的--prefix行將它們安裝在相同的位置。 gcc網站有list of pre-requisite packages

$HOME/.local是每個用戶安裝東西的標準接受位置。

+0

我已經安裝了gcc(我可以編譯C代碼)。另外,我有一個始終一致的主文件夾。我不知道在哪裏可以找到預編譯的g ++,我只找到源代碼,但我不知道該怎麼做。我試圖讓他們安裝這個,但它沒有工作:) – 2010-07-09 11:42:32

+0

@ user287655 - 我會將這個評論添加到您的問題,以進一步澄清它。 – Omnifarious 2010-07-09 11:58:09

+0

但不要嘗試構建新版本的GCC。根據https://gcc.gnu.org/install/prerequisites.html GCC需要一個C++ 98編譯器,除非你在4.8之前構建GCC,允許使用C89編譯器進行引導 – 2016-10-18 23:44:13

0

如果你有fakeroot,你可以使用它來設置〜/ some-path作爲root來安裝包。另外,你可以設置一個chroot環境來做同樣的事情。

鑑於此,您可以使用dpkg -i package.deb在您的系統上安裝gcc軟件包。您將需要單獨下載和安裝每個軟件包(例如,從debian網站) - 至少binutils,glibc,linux-headersgcc

如果您在另一個系統上,則需要爲該系統獲取正確的軟件包並使用相應的軟件包管理器進行安裝。

7

如果你想安裝它作爲一個本地用戶

GNU GSRC提供了一種簡單的方法來做到這一點

鏈接:http://www.gnu.org/software/gsrc/

配置後,只需指定下列命令:

cd gsrc 
make -C pkg/gnu/gcc 
make -C pkg/gnu/gcc install 

第二步也可以更改爲加速N核系統:

make -C pkg/gnu/gcc MAKE_ARGS_PARALLEL="-jN" 
+1

我建議使用穩定版本(比如2013.07 )而不是主幹,請從以下網址下載:http://ftp.gnu.org/gnu/gsrc/ – canesin 2014-02-21 13:25:52

+0

這也會安裝新版本的標準lib C++嗎? – 2014-09-15 12:20:47

相關問題