2010-08-13 206 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镜像挂载到这台机器上并从那里安装吗?

相关问题