web-dev-qa-db-ja.com

Ubuntu 16に複数バージョンのGCC(GCC-3.3)をインストールする方法

私はUbuntuに慣れていないので、コードをコンパイルするためにgccの古いバージョン(3.3)をインストールしたいと思っています。私が試したとき

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.
4

ソースからGCCをダウンロード、コンパイル、およびインストールします

通常、tar.gzを1つ取得します。 gcc.gnu.orgにリストされているミラーサイトの1つからソースを取得できます 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になると思います

./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と入力します

次にwhich gccを使用すると、手動で明示的に/usr/local/gcc-3.3.6/bin/gccを実行しなくても、使用しているgccのバージョンがわかります。

新しいバージョンまたは古いバージョンのGCCでコンパイルされた実行可能ファイルを後で実行する場合は常に、LD_LIBRARY_PATHが対応するGCCバージョンに正しく設定されていることを確認してください。

./configureステップの間、前提条件が不足しているかどうかを通知します。このステップが最初の試行で100%成功しなくても心配しないでください。ダウンロードしてインストールするか、次の方法で無効にする必要があります。 ./configure --helpの出力からそれを調べる

  • このようにして、コンテンツに複数のgccバージョンを含めることができます。--prefix=を使用して、各gccインストールを個別に保持します
  • LD_LIBRARY_PATHPATHを調整して、どちらかを使用します
2
ron

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を選択します

0

ここから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
0
newage_newton

Launchpadにはgcc 3.3の最近のビルドがあります のようです。これで十分かどうかはわかりませんが、試してみる価値はあると思います。

さらに詳しい説明が必要な場合は、コメントしてください。

0
Faheem Mitha