SuSE Linuxマシンにnetcdfをインストールする必要があるのですが、usr/local/フォルダとmyusername/local/フォルダを理解するのに問題があります。圧縮されていないnetcdfフォルダに移動して、
./configure --prefix=/usr/local/netcdf-gfortran
しかし、このフォルダーを作成する必要がありますよね? また、なぜユーザー名/ローカルではなく、usr/local に作成する必要があるのでしょうか?
答え1
通常の組み合わせは次のとおりです。
./configure --prefix=... [more options]
make
make install
/usr/local
おそらく、ルート権限も必要になるので は使用したくないでしょう。そのため、--prefix=$HOME
または--prefix=$HOME/programs
(または、自分に適した他の方法) を使用します。
追加のソフトウェアについてはシステム管理者に相談してみる価値があるかもしれません。openSUSE 11.3はすでにサポート終了しているので、とにかくシステム管理者に相談すべきです。少なくとも、システム管理者は11.4 エバーグリーン少なくともセキュリティ更新プログラムを受け取ります。
パッケージの構築に関しては、通常、.spec ファイル役に立つオプション、ソースコードパッチ、ビルドのコツなどについてのアイデアを得るにはconfigure
、おそらく次の点をチェックする必要があるでしょう。openSUSE:Factory の netcdf .spec ファイル(またはそれより古いディストリビューション)。
答え2
一般的に、Linux では、/usr
はディストリビューションによって提供され、そのパッケージ マネージャー (dpkg/apt、rpm/yum、emerge など) によって管理されるプログラム用であり、は/usr/local
システム管理者によって手動でインストールされ管理されるプログラム用です。および のプログラム/usr
は/usr/local
すべてのユーザーに対してインストールされます。
自分専用のプログラムをインストールする場合は、ホームディレクトリの下のどこかに置いてください。
使用をお勧めしますストウまたはXストウ手動でインストールしたプログラムを追跡します。(どちらか一方を使用してください。どちらも同じ概念の実装です。) プログラムを手動でインストールする場合、2 つの不便なオプションのいずれかを選択できます。
- すべてのプログラムを同じディレクトリに配置します。そうすると、どのファイルがどのプログラムに属しているかを把握したり、プログラムをアンインストールしたりといった、プログラムの整理が難しくなります。その一方で、すべてのプログラムは簡単に使用できます。PATH やその他の同様の設定を 1 回更新するだけで済みます。
- 各プログラムを独自のディレクトリに配置します。そうすれば、アンインストールは簡単です
rm -r
。欠点は、各プログラムを PATH などに追加する必要があることです。
Stow は両方の長所を兼ね備えています。このツールは、共通ディレクトリからプログラムごとのディレクトリへのシンボリック リンクを維持します。各プログラム (ソースまたはバイナリ パッケージから) を の下にある独自のディレクトリにインストールするstow
と、Stow はbin
、lib
、man
、 などにシンボリック リンクを作成します。
programs/stow
ホームディレクトリの下にディレクトリを作成します。netcdfを次のようにインストールします。
./configure --prefix=~/programs/stow/netcdf-gfortran-4.3
make
make install
次に、ディレクトリstow netcdf-gfortran-4.3
から実行して~/programs/stow
、そのパッケージのすべての部分へのシンボリック リンクを作成します。
.profile
(または環境設定を配置した場所)を編集して、~/programs/bin
実行可能ファイルの検索パス、~/programs/lib
ライブラリの検索パスなどに追加します。
PATH="$HOME/programs/bin:$PATH"
if [ -n "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH="$HOME/programs/lib:$LD_LIBRARY_PATH"
else
export LD_LIBRARY_PATH="$HOME/programs/lib"
fi
if [ -z "$MANPATH" ]; then
MANPATH=$(manpath)
fi
export MANPATH="$HOME/programs/share/man:$HOME/programs/man:$MANPATH"
プログラムをコンパイルするときに、--with-cppflags="-I $HOME/programs/include"
を渡してconfigure
、stow 領域内のヘッダーを見つけられるようにします。
詳細については、プログラムの追跡そして古くなった本番マシンに最新のソフトウェアをインストールする効果的な方法は何ですか?