MacPortsを介して最新バージョンをインストールし、tcpdump
それをデフォルトのバイナリにしたいと思います。
$ which -a tcpdump
/usr/sbin/tcpdump
/opt/local/sbin/tcpdump
これで1つを設定しましたが、古い文書が表示されるのをalias
防ぐことはできません。man
答え1
ベンダーパスの前にMacPortsパスを一覧表示するには、変数PATH
と環境変数を調整する必要があります。MANPATH
そのためには、次のことを試してみて、bash
実行中のシェルを再ロードしてください。.bashrc
.bash_profile
exec bash
export MANPATH=/opt/local/share/man:$MANPATH
他の便利なコマンドは、現在何があるかを確認し、MANPATH
MacPortsがマニュアルページを非表示にする可能性のあるすべての場所を見つけることです(すべてマニュアルページディレクトリではありませんが、正しいディレクトリにはサブman[0-9]
ディレクトリが必要です...)。
echo $MANPATH
find /opt -type d -name man
PATH
基本的には次のようになります。
export PATH=/opt/local/sbin:/opt/local/bin:$PATH
最も簡単なオプションでなければなりませんが、もう一度exec bash
テストしてみてくださいecho $PATH
。
/usr/libexec/path_helper
ただし、Appleにはグローバルrcファイルで実行されるスクリプト()があることに注意してくださいgrep -l path_helper /etc/* 2>/dev/null
。カスタマイズが必要です。後ろにプログラムはAppleのデフォルト設定に変更またはPATH
リセットします。出力を開始点として使用できます。MANPATH
path_helper
path_helper
/usr/libexec/path_helper -s >> ~/.bashrc
次に、追加された行を編集して、目的のパスを目的の順序で含めます。 (>
そのように使用しないでください。破壊するファイル.bashrc
を>>
添付しています...)
答え2
では、OS X 10.8.5
実際には何もしてはいけませんbash 3.2.53(1)
。MacPorts 2.3.4
最初はなぜ動作しなかったのかわかりません。PATH
値は何らかの方法で保存され更新されない場合があります(詳細は以下を参照)。
頑張った
・MANPATH
提案によるとトリガーしかし、それはうまくいきませんでした。man
マンページ:"It overrides the configuration file and the automatic search path"
。
・まず、マイ(グローバル)設定ファイルでパッケージマネージャのディレクトリを使用しますexport
。PATH
これはプレフィックスを3回付け、サフィックスを1回貼り付けます。最新のバイナリ/manページをデフォルト値に設定しますが、この新しいより長い組み合わせが気になりますPATH
(以前の値にはすべてのディレクトリが1回しか含まれていませんが、順序は異なります。最初にオペレーティングシステムのデフォルト値、パッケージマネージャ)。
このトピックについてはSUを確認してください。OS X 10.6 Snow Leopardでは、$ PATHはどこに設定されていますか?。
MacPorts
インストーラは~/.profile
。
# MacPorts Installer addition on 2015-10-10_at_20:55:20: adding an appropriate PATH variable for use with MacPorts.
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
# Finished adapting your PATH environment variable for use with MacPorts.
私はこのような状況にあまりにも多かったので、最後の状況を除いてすべてを検討しました。その結果、きれいPATH
。
しかし、実際にman
更新された文書をどのように入手しますか?
このSEARCH PATH FOR MANUAL PAGES
セクションでは:
In addition, for each directory in the command search path (we'll call it a "command
directory") for which you do not have a MANPATH_MAP statement, man automatically looks for
a manual page directory "nearby" namely as a subdirectory in the command directory itself or
in the parent directory of the command directory.
You can disable the automatic "nearby" searches by including a NOAUTOPATH statement in
/private/etc/man.conf.
一時的に有効にしてこれを確認しましたNOAUTOPATH
。
はい
$ type tcpdump
tcpdump is /opt/local/sbin/tcpdump
$ ll -d /opt/local/man
lrwxr-xr-x 1 root admin 9 Oct 10 20:55:20 2015 /opt/local/man -> share/man
他のパッケージマネージャにはYMMVがありますが、それほど多くはないようです。