我对 Ubuntu 不熟悉,我想安装旧版本(3.3)来gcc
编译一些代码。当我尝试使用
sudo apt-get install gcc-3.3
它没有安装。
~$ sudo apt-get install gcc-3.3
sudo: /etc/sudoers.d is world writable
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'gcc-3.3-hppa64' for regex 'gcc-3.3'
The following packages were automatically installed and are no longer required:
gfortran-5 libamd2.4.1 libbtf1.2.1 libcamd2.4.1 libccolamd2.9.1
libcholmod3.0.6 libcsparse3.1.4 libcxsparse3.1.4 libgfortran-5-dev
libklu1.3.3 libldl2.2.1 libspqr2.0.2 libumfpack5.7.1 openjdk-9-jdk-headless
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.
当我尝试列出 的所有可用版本时gcc
,
sudo apt-cache search gcc
它没有列出gcc
3.3。如何在 Ubuntu 上安装 gcc 3.3?
我当前的gcc
版本是:
~$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
答案1
从源代码下载、编译并安装 GCC
我通常会得到tar.gz
一个;您可以从 gcc.gnu.org 列出的镜像站点之一获取源代码
https://gcc.gnu.org/mirrors.html
tar -xf gcc-3.3.6.tar.gz
./configure --prefix=/usr/local/gcc-3.3.6
make
make install
相应地调整“--prefix= /usr/local/gcc-3.3.6
”;我更喜欢明确地知道一切都在哪里,这会让事情变得更容易。我认为如果没有指定它将默认为/usr/local/bin
您可以执行 a./configure --help
来获取所有可用选项的描述; prefix=
只是执行时安装的位置make install
,如果未指定“prefix=”,还会告诉默认安装位置。
使用时--prefix=
,您需要取代您在环境变量中所做的任何操作的本地安装,PATH
如下LD_LIBRARY_PATH
所示
*for bash*
export PATH=/usr/local/gcc-3.3.6/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/gcc-3.3.6/lib:${LD_LIBRARY_PATH}
*for csh or tcsh*
setenv PATH /usr/local/gcc-3.3.6/bin:${PATH}
setenv LD_LIBRARY_PATH /usr/local/gcc-3.3.6/lib:${LD_LIBRARY_PATH}
打开一个新的终端窗口或首先输入rehash
然后 awhich gcc
会让您知道您将使用的 gcc 版本,而无需手动且明确地/usr/local/gcc-3.3.6/bin/gcc
使用它。
每当稍后运行使用较新/较旧版本的 GCC 编译的可执行文件时,请确保LD_LIBRARY_PATH
已正确设置为相应的 GCC 版本。
在此./configure
步骤中,您将知道是否缺少先决条件,因此,如果此步骤在第一次尝试时未 100% 成功,请不要惊慌,您需要下载并安装它们,或者通过从的输出./configure --help
- 这样你就可以拥有多个 gcc 版本,让每个 gcc 单独安装
--prefix=
- 相应地调整
LD_LIBRARY_PATH
、 和PATH
,以使用其中的一个
答案2
您可以从这里下载 debian 软件包
http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.3/gcc-3.3_3.3.6-15ubuntu6_i386.deb
并安装
sudo dpkg -i /path/to/package
答案3
看起来Launchpad 提供了 gcc 3.3 的最新版本。我不知道这是否足够新,但我认为值得一试。
如果需要进一步阐述,请评论。
答案4
我已将 Debian 存储库添加到 /etc/apt/source 中。
deb http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb-src http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
deb-src http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
然后我使用搜索 gcc
sudo apt-cache search gcc
然后它列出了 gcc-3.3 然后我安装了
sudo apt-get install gcc-3.3 g++-3.3
然后我更改了 gcc 的符号链接以选择 gcc 3.3