2016-03-27 7 views
-1

ここは私の質問です。Linux上でgccの2つのバージョンを非管理者として選択してください

  1. Iが使用できるLinuxクラスタ(須藤ないユーザ)がgcc 4.2.1をインストールしました。

    >which gcc 
    >/usr/bin/gcc 
    
  2. は、何らかの理由で、私はgccの新しいバージョンを必要としています。だから、私は私はまだ古いバージョンgcc 4.2.1をしたい

  3. (私が原因の権限の限界に/usr/binでそれをインストールすることはできません)/disk3/lly/lib/gcc-5.1.0gcc 5.1.0をインストールしている、と時々私はgcc 5.1.0を使用します。だから、私はそれらを簡単に切り替える安全な方法を見つけたい。

私はいくつかの記事を読んで、ここ1つの、簡単な方法でまとめています

## Overlay the older one 
## Newer gcc at /disk3/lly/lib/gcc-5.1.0--> For simplification, take $NEW for insted 
cd /usr/bin 
sudo rm gcc 
sudo ln -s $NEW/bin/gcc gcc 

## Change back to gcc 4.2.1  
sudo ln -sf /usr/bin/gcc gcc 

をしかし、私は十分な権限を持っていない、私の目標を達成するためのいくつかの代替方法があるのですか?

+1

関連:[GCCを更新せずにgfortranを更新する](http://stackoverflow.com/questions/36178094/updating-gfortran-without-updating-gcc/36178285#36178285)、[GLIBC_2.11 'が見つかりません/path_name/bin/gfortran)](http://stackoverflow.com/questions/36193463/glibc-2-11-not-found-required-by-path-name-bin-gfortran)。 –

+2

新しい質問を投稿する前に、あなたの研究をしてください。 –

+0

ご返信ありがとうございます。問題を解決した後、私はこの問題を削除します。 –

答えて

-1

短い回答:gccはに組み込まれ、ハードコードされたインストールパスに対してがあります。他の場所にコピーするだけでは機能しません。インストールされたバージョンと同じでない場合は、gcc(およびおそらくbinutils、おそらく一致するlibc)をゼロから再コンパイルする必要があります。

現時点でのあなたの主な問題は$NEW/bin/gccがあなたのPATHにないことです。あなたは

輸出PATH = $ {NEW}/binに/ gccのようにそれを追加した後:$ {PATH}

は、それはコンパイラのフロントエンドのバージョンを起動しますが、あなたはすぐに実行されます解決しにくい他の問題がたくさんあります。

+0

申し訳ありませんが、これは真実ではありません。あなたはGCCのインストールで相対パスを持つことができます。おそらく、** binutilsを再構築したくないかもしれません!さらに、ライブラリパスを設定する点にも触れません。リンクされた質問には、より詳細な回答があります。 –

+0

gccの設定マニュアルから: "--prefix = dirname トップレベルのインストールディレクトリを指定する*これは、デフォルト以外のディレクトリにツールをインストールする場合に推奨される方法です*。トップレベルインストールディレクトリのデフォルトは/ usr/localです。 " - 注記私はあなたがビルドを任意の場所で実行するように調整できないと言っているわけではありません。しかし、それはOPの能力を超えているようです。 – tofro

+0

これは便利なインストールのためのものです。そこには多くのツールチェーンがあり、ダウンロードしたり、ローカルで抽出したり、直接使用することができます。関係する調整はありません。 –

関連する問題