2010-08-13 65 views
11

如何在沒有任何c編譯器的系統上安裝gcc? 這個系統是一個linux基礎防火牆,並沒有任何c編譯器。在沒有c編譯器的情況下在Linux上安裝gcc

+0

吧?爲什麼你需要一個編譯器來安裝東西?你需要的基本應用是'cp',或者'mount'。 – 2010-08-13 11:44:27

+0

Elazar:如果他使用的Linux發行版不提供安裝工具,那麼他需要編譯GCC。我不知道「linux基礎防火牆」是什麼意思。 – Stephen 2010-08-13 11:50:08

+0

如果你沒有安裝編譯器,我會猜測還有很多其他的系統包含和庫沒有安裝,你需要編譯。你可以在這裏尋找一些幫助啓動的二進制文件。 http://gcc.gnu.org/install/binaries。html – 2010-08-13 12:01:25

回答

12

我想你有一臺運行Linux和shell-access的設備,但是既沒有安裝軟件包管理器,也沒有安裝編譯器。

所以,你需要交叉編譯gcc和整個工具鏈(至少binutils的) - 這是相當簡單的,因爲gcc的./configure腳本,binutils的,GDB等支持與--target=選項交叉編譯。所以你所要做的就是找出目標架構(uname幫助),然後下載,解壓linux主機上的gcc源碼並運行./configure --target=$YOUR_TARGET。使用這個,你現在可以建立一個交叉編譯器gcc - 它仍然在你的主機上運行,​​但是爲你的目標(防火牆設備)產生二進制文件。

對於您來說,這可能已經足夠了,典型的桌面PC比典型的應用程序要快得多,因此使用交叉編譯器和交叉binutils在桌面PC上編譯所需的所有內容都是有意義的。但如果你真的希望這樣做,你現在可以使用你的交叉編譯器來編譯運行在你的目標上的gcc(設置爲--host=選項)並編譯你的目標(設置爲--target選項)。

您可以在gcc文檔中找到有關允許的主機/目標和示例的詳細信息:http://gcc.gnu.org/install/specific.html

+0

我遇到了這個問題 - 一個Linux(Debian 3.4)和shell訪問的設備,但沒有包管理器或編譯器。我想安裝apt-get,但我真的不知道從哪裏開始。有沒有任何noob(ish)友好的閱讀材料,你可以指給我?我的Google-Fu在這方面讓我失望。任何幫助將不勝感激! – opticon 2013-05-17 21:11:06

0

如果它是一個基於Debian發行版,您可以使用

sudo apt-get install gcc 

注:也許您必須通過Debian軟件包的特定版本更改「海灣合作委員會」。

1

這取決於分佈,如果它基於debian或其他一些大的,你可以通過apt-get或類似的工具安裝gcc。

如果這是一個更基本的系統,您需要在另一臺計算機上自己編譯gcc並複製它。如果您有另一臺具有相同體系結構的計算機(例如i386,arm或x86_64),那將是最容易的。

我認爲你可能想靜態編譯它,這樣你就不需要依賴外部庫。

+0

這個基於EFW的linux系統(endian防火牆) – hamSh 2010-08-13 11:57:49

+5

我也許會說我會查看你在防火牆上安裝gcc的原因,這聽起來像是一個壞主意。所以如果你有一個很好的理由去做,那就試着走這條路。 – 2010-08-13 12:46:36

0

你打算如何獲得GCC加載到你的機器上所需的所有源代碼?你能把ISO鏡像掛載到這臺機器上並從那裏安裝嗎?

相關問題