システムには多くのバージョンのバイナリがあり、どのバージョンを選択するかによって異なります$PATH
。たとえば、私が作業しているシステムには複数のバージョンがあります。
$ which sort
~/coreutils-8.25/bin/sort
$ ~/coreutils-8.25/bin/sort --version | head -n 1
sort (GNU coreutils) 8.25
$ /bin/sort --version | head -n 1
sort (GNU coreutils) 8.4
私が使用しているシステムでは、sort
そのまま呼び出してGNU coreutils 8.25バージョンを選択しますPATH
。ただし、MANPATH
システムの環境変数は、sort
GNU coreutils 8.4のマニュアルページが表示されるように設定されています。/bin/sort
)、これは優先順位文書を持つバイナリではありません)。
この状況は、3つの部分からなる質問を作成します。
まず、反映されたフォームをman
使用または生成するように指示(またはシェル)する簡単な方法はありますか?または、手動で実行する必要があります(たとえば、各エントリに関連するマニュアルページのパスを見つけ、同じパスが変更されるたびにこれらのパスがリンクされた順序を繰り返す必要がありますか?)との間に一貫性を設定するメカニズムがある場合マニュアルページが自動的に表示されるため、デフォルトで使用されているバージョン以外のバージョンのマニュアルページを誤って読み取る問題を回避できます。MANPATH
PATH
PATH
PATH
PATH
PATH
MANPATH
次に、メインのマニュアルページへのパスをすばやく決定するためのコマンドがあります(たとえば、which "man sort"
実行時に表示されるマニュアルページへのパスを報告するなどのコマンドman sort
)。たとえば、 を入力するとman sort
ポケットベルに送信されるシステム上の特定のファイルを表しません。
man ~/coreutils-8.25/bin/sort
第三に、関連ファイルを追跡することなく、コマンドの明示的なバージョン(私のGNU coreutils 8.25バージョンのマニュアルページと同様)のマニュアルページを取得する方法はありますか?私の場合は、~/coreutils-8.25/share/man/man1/sort.1 または ~/coreutils-8.25/man/sort.1).
ベストアンサー1
~のため地元のこのようなインストールでは、一貫した結果を得るためにシェルスクリプトを使用してPATH
値を設定します。そんな小物がなかったらLD_LIBRARY_PATH
MANPATH
いいえ自動で一貫した結果を得る。
以下は古い例です。
#!/bin/bash
# $Id: with-ncurses,v 1.1 2006/09/02 23:04:39 tom Exp $
export LIBS="-lncursesw"
for prefix in \
/usr/local/ncurses6
do
test -f $prefix/lib/libncursesw.so && break
test -f $prefix/lib/libncursesw.a && break
done
if [ -d $prefix/include/ncursesw ] ; then
export CPPFLAGS="-I$prefix/include/ncursesw $CPPFLAGS"
if [ $prefix != /usr ] ; then
export CPPFLAGS="-I$prefix/include $CPPFLAGS"
fi
fi
if [ $prefix != /usr ] ; then
export PATH=`newpath -bd $prefix/bin`
export LD_LIBRARY_PATH=`newpath -n LD_LIBRARY_PATH -bd $prefix/lib`
export LIBS="-L$prefix/lib $LIBS"
# this doesn't work for db30:
# export LIBS="-static -L$prefix/lib $LIBS -shared"
fi
case `partition` in
rh*|md*)
export MANPATH=$prefix/man:`manpath`
;;
*)
export MANPATH=$prefix/man:`manpath -q`
;;
esac
eval $*
これらのスクリプトを作成してください持ち運べるMANPATH
これは、どのように使用するかの基準がないために問題になります。ただし、特定のシステムに対しても同様の調整を実行できます。
ところで、このスクリプトはnewpath
これらの変数を修正し、重複を避けてください。