2013-05-01 15 views
26

新しいC++ 11の機能をいくつか試してみたいと思っています。これはgcc 4.8とSqueeze 4.4.5でサポートされているようです。Debianにgcc 4.8をインストールする

しかし、私は現在の設定に「ダメージ」を与えたくありません。 を入手する最良の方法はどれですか? gccのバージョンは両方とも並んでいますか?私は主に多くの依存関係が懸念されており、現在のシステムにそれらをすべて取り込むと、それが不安定になる可能性があります。

誰でもこれを行うことができましたが、どのような手順が関係していますか?

私はたぶんVMを作成し、それに基づいて「不安定な」Debianを実行することになるでしょうが、あまり理想的ではありません。

答えて

33

あなたがソースからのGCCをインストールする場合は、単にあなたが/usrにそれをインストールしないと、それは混乱何かをアップしないことを確認してください。 rootではなく自分のユーザーとしてインストールすると、システムが壊れる可能性はゼロになります。

ほとんど馬鹿にならない最小構成については、http://gcc.gnu.org/wiki/InstallingGCCを参照してください。

私はさまざまなバージョンを自分のユーザーとして作成し、さまざまなXの~/gcc/4.Xにインストールしました。

この設定を使用していることに注意する唯一の点は、新しいバージョンの共有ライブラリが動的リンカーのデフォルト検索パスにないことです。LD_LIBRARY_PATHまたはその他の解決策を使用して、 4.8からLIBS、私は単に-std=gnu++11とGCCの新しいバージョンを呼び出し、パスを設定し、それを伝えるリンカにフラグを渡すラッパースクリプトの呼び出しg++11を使用manual

libstdc++ FAQ、それはにリンクページをご覧ください実行可能ファイルの4.8つのライブラリに:

$HOME/gcc/4.8/bin/g++ -Wl,-rpath,$HOME/gcc/4.8/lib64 -std=gnu++11 -Wall -Wextra -g "[email protected]" 
+3

ラッパスクリプト –

2

クイックなもの:

  1. ちょうどテストにアップグレードする、それが堅実で、あなたにいくつかの同時のgccのバージョンを提供しています。 12.10でUbuntuと同様に、gcc/g ++ 4.4,4.5,4.6,4.7を並行して使用しています。

  2. Debianバックポートアーカイブを試してみてください。ポートはgcc 4.8です。

  3. 仮想化を使用する:私はlibvirt/kvmを好んでいます。これは、Linux上ではカーネルベースなので非常に軽量です。私のamd64サーバーには2つの32ビットインストールがあります。本当に

  4. ない質問...

+6

よくある質問:「プログラマーがよく使うソフトウェアツール」。 gccがその記述と一致しない場合、私は私の帽子を食べます:-) – paxdiablo

+3

SOはプログラミングのためのものです。私は司会者のマフィアがスーパーユーザーに多くの類似の質問を送っているのを見ました。個人的には、私はここでの質問に賛成し、SEのサイトはきめ細かくなっていると思う。ちょうど私は多かれ少なかれこれが閉鎖/動かすと期待していると言っています。 –

6

Debianは名前のgcc-4.8(またはC++のコンパイラはg ++ - 4.8)の下のパッケージを持っています。これらのパッケージをインストールしても、g ++に名前を変更しない限り、OSが混乱することはありません。パッケージは実験としてリストされています。
パッケージの情報はhereです。

更新:G ++ - 4.8 testingになりましたが、更新されたパッケージはunstable

+0

彼は安定して走っています。 –

+0

彼は望むなら、安定していないパッケージを見つけるように自分のシステムを構成することができます。 [このServerFaultに関する質問](http://serverfault.com/questions/22414/how-can-i-run-debian-stable-but-install-some-packages-from-testing)(受諾された回答を読む)。 – JKor

+1

確かに - 私は1995年以来、Debianの開発者/管理者として働いていたことを認識しています。安定したテストと不安定なテストのギャップが広がることがあります。ベースとしてテストを使用する方がずっと簡単です。私は何年も行っています。しかし、YMMVと彼も。 –

1

にあなたは、新しいDebianの風味をインストールするにはchrootをしようとしたことがありますか?

  • 作業システムを壊す恐れなしに遊ぶことができます。

  • 希望するgccバージョンをサポートするDebianフレーバーをインストールします。

  • 作業システムに影響を与えることなくgccバージョンを手動でインストールしてください。 http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Chroot

16

私は同じ問題があり、テストに完全にアップグレードしたくなかった。

Jessie(testing)には、C++ 11に準拠したg ++ - 4.8が含まれています。

Iは、次のようにしやすく、ピン止めを使用:

をジェシーにソースが/etc/apt/sources.listに添加した:

deb http://ftp.uk.debian.org/debian/ jessie main non-free contrib 

の/ etc /やすい/選好は以下のように編集されましたこうした:次に

Package: * 
Pin: release n=wheezy 
Pin-Priority: 900 

Package: gcc* 
Pin: release n=jessie 
Pin-Priority: 910 

$ sudo aptitude update 
$ sudo aptitude install gcc/jessie 

その時点で、依存関係を完全に解決するために提示された2番目のオプションを選択しました。

+1

は特に有用です。 'n = jessie'でなければなりません。ディストリコード名は' man apt_preferences'による 'n ='です。それに、 'a 'で私のために働かない。 –

+1

これらの手順は、既存のgcc 4.7インストールを削除し、新しいgccをインストールしないことで、Debian 7.8.0(wheezy)に壊れてしまいます。 'apt-get'を使ってオリジナルのgcc 4.7を再インストールしようとすることはできません(または動作しません)。 –

関連する問題