Gccおよびg ++の最新バージョンをインストールするにはどうすればよいですか?
さまざまなC++ 11およびC++ 1y機能を使用しています。これが必要な理由です。
Ubuntu Toolchain PPAからGCCのアップストリームバージョンの近くにインストールできます。 https://wiki.ubuntu.com/ToolChain#PPA_packages
Sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Sudo apt-get update
Sudo apt-get install g++-4.9
Ubuntu 14.04でテスト済み。
男性に魚などを教えるなど
ソースパッケージをビルドし、適切な方法でローカルリポジトリから提供する方法。依存関係が満たされる限り、これはどのディストリビューションでも機能します/この方法では、すべてのパッケージにビルド-depsをインストールする必要はなく、外部のパッケージでマシンを汚染する必要はありません。 。これを1回行うには数分しかかかりません。その後、他の人に頼ってppaをパッケージ化したり、さまざまな.debsをダウンロードしたりすることなく、必要なパッケージを再構築するために再利用できます
ビルドとdebianからraw .debsをプルする利点は、ディストリビューションのビルド依存関係として使用されるものとはバージョン/リビジョンが異なる可能性があるディストリビューションのパッケージに対してパッケージをビルドすることです。これは多かれ少なかれ、パッケージをバックポートするプロセスです。また、任意のubuntuディストリビューションを使用して、他のディストリビューションをターゲットにしたパッケージをビルドすることもできます(この場合のターゲットは、標準リポジトリパッケージに対してビルドすることを意味します)。
(PPAアップロード用ではありません-これにはランチパッドからの官僚的要件があります
おそらく必須:packaging-dev
(とりわけbuild-essential pubilder ubuntu-dev-tools
を引っ張る)
Pbuilderをセットアップします(これにより、システムをビルド依存パッケージで汚染することなく、chrootでパッケージをビルドできます)
Sudo pbuilder create
、pbuilder-dist [precise/oneric/trusy/etc...] create
を使用できますDebianソースを入手する
pull-debian-source gcc-4.9 [4.9.0-6]
特定のdebianリビジョンはオプションですが、実験的/不安定/テスト/安定したリビジョンをプルしたい場合に役立ちますSudo apt-get src
を使用してビルドパッケージ
Sudo pbuilder build gcc-4.9_4.9.0-6.dsc
.dsc
ファイルがあり、最新のgccの場合はgcc-4.9_4.9.0-6.dsc
であり、これはパッケージ記述子ファイルです。 .orig.tar.[gz/xz]
はソースtarballです。ローカルのAptリポジトリを作成する
mkdir /convenient/place/for/repo
cp /var/cache/pbuilder/result/* /path/to/repo
apt-ftp archive packages . > Packages
Sudo echo "deb [trusted=yes] file:/local/repo/Packages ./" > /etc/apt/sources.list.d/gcc-repo.list
インストール
apt-get update; apt-get install gcc-4.9 g++-4.9
パッケージをビルドするときに、自己コンパイルパッケージを使用して依存関係を満たします。 (フォルダー~/pbuilder
~/pbuilder/precise_local
(正確にはローカルパッケージリポジトリ)および~/pbuilder/precise_hooks
(フックスクリプト用)でセットアップしています)
次を~/.pbuilderrc
に追加します
OTHERMIRROR="deb [trusted=yes] file:///home/user/pbuilder/precise_local ./"
BINDMOUNTS="/home/user/pbuilder/precise_local"
HOOKDIR="/home/user/pbuilder/precise_hooks"
EXTRAPACKAGES="apt-utils"
precise_hooks
でファイルを作成しますD05local
(通常のUNIX/Linuxの場合、プレフィックスD
は、スクリプトがフックされたときに通知します05
は自主的な名前の順序で、local
は単なる名前フックが1つしかない場合、D
がプレフィックスである限り、何を呼び出すかは重要ではありません
スクリプトはワンライナーです
(cd /home/user/pbuilder/precise_local ; apt-ftparchive packages . > Packages)
これで、precise_local
に配置されたパッケージはビルド依存関係を満たします。これは、バックポートも必要な依存関係を持つパッケージをバックポートするときに、依存関係ツリーをローカルに構築するのに非常に役立ちます
これをさらにきれいに行うには、VMイメージまたはLXCコンテナーを使用してこの混乱を投獄します。
quilt
を使用して、ほとんどのdebianパッケージにカスタムパッチを適用できます。quiltパッチは、ほとんどのVCSの差分を使用できます( sing quilt を参照)
追加の手順があります。.dsc
と.debian.tar.gz
を再構築する必要があります。私が知っている最もクリーンな方法はbzr-builddeb
であり、最高の成功率IMHO(git-build-packageおよび他のヘルパースクリプトと比較して)であり、debuild
を直接呼び出すよりもずっときれいです(bzr
= Bazaar canonicalのVCS)
Sudo apt-get install bzr-builddeb
.orig.tar.gz
が抽出され、.debian.tar.gz
が抽出され、その中に配置されると仮定しますbzr init
bzr add
bzr commit
debian/changelog
debian/patches/
にパッチを追加し、debian/patches/series
を変更します(キルトには、パッチを追加したり、オンザフライで変更するためのユーティリティもあります。ドキュメントを参照してください)bzr add debian/
bzr commit
bzr builddeb -- -S -us -uc
これにより、ソースファイルが再構築され、署名されません(PPA /ディストリビューションのアップロードにはgpg署名が必要ですが、プライベートローカルリポジトリには必要ありません)cd ../build-area/
上記のステップ3から続行します。ここの手順1〜4は、PPAにアップロードする必要があるもの(バイナリファイルは使用しません)ですが、Launchpadの官僚主義を満たすためにいくつかの手順が必要です(この answer に説明があります。 this いくつかのリンクがあります)
Debianはパッケージを提供しています: https://packages.debian.org/jessie/gcc-4.9 -Ubuntu/Debianの互換性に関する問題の発生を防ぐsources.listに追加しないでください。
代わりに、これらすべてを単にダウンロードしてください:
binutils_2.25-5_AMD64.deb
cpp_4.9.2-2_AMD64.deb
g++_4.9.2-2_AMD64.deb
gcc_4.9.2-2_AMD64.deb
gcc-4.9-base_4.9.2-10_AMD64.deb
libasan1_4.9.2-10_AMD64.deb
libatomic1_4.9.2-10_AMD64.deb
libcilkrts5_4.9.2-10_AMD64.deb
libgcc1_4.9.2-10_AMD64.deb
libgcc-4.9-dev_4.9.2-10_AMD64.deb
libgomp1_4.9.2-10_AMD64.deb
libitm1_4.9.2-10_AMD64.deb
liblsan0_4.9.2-10_AMD64.deb
libmpfr4_3.1.2-2_AMD64.deb
libquadmath0_4.9.2-10_AMD64.deb
libstdc++-4.9-dev_4.9.2-10_AMD64.deb
libstdc++6
libtsan0_4.9.2-10_AMD64.deb
libubsan0_4.9.2-10_AMD64.deb
Debianのサーバーから、例えば:
http://ftp.us.debian.org/debian/pool/main/b/binutils/binutils_2.25-5_AMD64.deb
次に、それらをインストールします。例:$ for package in *.deb; do Sudo dpkg --install "$package"; done
[すべての依存関係がカバーされるまで、bashループを数回実行する方が、ダウンロードした順序を覚えるよりも簡単です!]
現在(20141102)PPAを追加し、上記のコマンドapt-get install gcc-4.9 g++-4.9 cpp-4.9
を呼び出すと、多数の推奨パッケージが出力されます。 libvtv0-dbg(依存関係の競合がある)を除くすべてをインストールします。
apt-get install gcc-4.9 g++-4.9 cpp-4.9 gcc-4.9-locales g++-4.9-multilib libstdc++6-4.9-dbg gcc-4.9-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan1-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libquadmath0-dbg lib32stdc++6-4.9-dbg libx32stdc++6-4.9-dbg
(興味がない場合は-dbgパッケージをスキップします)、apt-get dist-upgrade --auto-remove
を実行します。その最後のステップでは、基本的にgcc-4.8をgcc-4.9に置き換え(古いバージョンをアンインストールしない)、最新のFortranコンパイラーを同時に取り込みます。
Gcc-4.9-baseパッケージのバージョンを強制して、投稿したエラーメッセージを通過させなければなりませんでした。その後、インストールが機能しました
Sudo apt-get install gcc-4.9-base=4.9.2-0ubuntu1~14.04
今、あなたは定期的に行うことができます
Sudo apt-get install gcc-4.9
GCC GNU 4.9をインストール
Sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Sudo apt-get update
Sudo apt-get install gcc-4.9
デフォルトのアプリケーションリストから以前のgccバージョンを削除します(既に存在する場合)
Sudo update-alternatives --remove-all gcc
GCC 4.9をシステムのデフォルトコンパイラにする
Sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
Sudo update-alternatives --config gcc
最新のアップデートGCC 4.9.1は、GCC 4.9ブランチからのバグ修正リリースであり、GCC 4.9.0のリグレッションおよび重大なバグに対する重要な修正と、以前のリリース以降に修正された88を超えるバグが含まれています。それに加えて、GCC 4.9.1リリースは、CおよびC++だけでなく、FortranでもOpenMP 4.0をサポートします。
注:ubuntu 14.04 LTSでチェック済み