私のDebian7armel組み込みシステムには現在g ++ 4.6があり、新しいC++ 11機能を使用するためにg ++ 4.9にアップグレードしたいと思います。それ、どうやったら出来るの?
私の現在のsources.listの内容は次のとおりです。
deb http://security.debian.org/ wheezy/updatesメイン deb-src http://security.debian.org/ wheezy/updatesメイン deb http://ftp.us.debian.org/debian wheezy main non-free deb-src http://ftp.us.debian.org/debian wheezy main non-free
パッケージの単純なapt-getインストールは機能しません:
root @ arm:〜#apt-get install g ++-4.9 パッケージリストの読み取り...完了 依存関係ツリーの構築 状態の読み取り情報...完了 E:パッケージg ++-4.9が見つかりません E:正規表現 'g ++-4.9' でパッケージが見つかりませんでした
別の回避策は、 このブログ投稿 によると、「Jessie」からg ++ 4.9パッケージをインストールすることです。簡単に言うと、新しいG ++のインストール中にJessieリポジトリを使用するようにAPTに指示する必要があります。まず、現在のWheezyを最新の状態にします。
Sudo apt-get update
Sudo apt-get upgrade
次に、バックアップを実行します:-)そして/etc/apt/sources.list
を編集して、文字列"wheezy"
を"jessie"
に置き換えます。
Sudo cp /etc/apt/sources.list /etc/apt/sources.list.WHEEZY
Sudo vi /etc/apt/sources.list
次に、パッケージリストを更新し、4.9バージョンのGCC/G ++をインストールします。
Sudo apt-get update
Sudo apt-get install gcc-4.9 g++-4.9
この後、「元の」パッケージリストに戻ります。
Sudo cp /etc/apt/sources.list.WHEEZY /etc/apt/sources.list
Sudo apt-get update
これにより、元のGCC、G ++がそのまま残ります。 4.9バージョンでコンパイルする場合は、それに応じてCC
およびCXX
env varsを設定するか、コンパイラーをgcc-4.9
またはg++-4.9
として明示的に呼び出します。
おそらく必須:packaging-dev
、ubuntu-dev-tools
(これにより、ビルド依存パッケージでシステムを汚染することなく、chrootでパッケージをビルドできます)
Sudo pbuilder create
特定のディストリビューション用にビルドする場合(pbuilderはchrootでビルドシステムリリースを使用します)、pbuilder-dist [precise/oneric/trusy/etc ...] createを使用できます。
pull-debian-source gcc-4.9 [4.9.0-6]
特定のdebianリビジョンはオプションですが、実験的/不安定/テスト/安定したリビジョンをプルする場合は、それらをdeb-srcとしてsources.listに追加し、Sudo apt-get srcを使用して、特定のubuntuディストリビューションからプルすることもできます。
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です。
mkdir /convenient/place/for/repo
cp /var/cache/pbuilder/result/* /path/to/repo
cd /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`
どこからでもダウンロードした.debsを使用してこのステップを実行することもできることに注意してください(ステップ1〜3をスキップ)
apt-get update; apt-get install gcc-4.9 g++-4.9
Jessieパッケージを使用する代わりに、wheezyにバックポートされているかどうかを確認することをお勧めします。これを/etc/apt/sources.list
に追加します:
deb http://http.debian.net/debian wheezy-backports main
apt-get update
を実行して、インストールできるかどうかを確認します。
gcc-4.9-backport があります。
Sudo apt-get update && Sudo apt-get install gcc-4.9-backport