システムバイナリを交換するための最良の方法は何ですか?

システムバイナリを交換するための最良の方法は何ですか?

私は/usr/bin/主に/usr/sbin/。一部のLinuxディストリビューションなどのデフォルトのパッケージマネージャがないため/usr/local/<package_name>/

これにより、システムからパッケージを完全に削除できますが、ファイル内の変数PATHと変数を手動で更新する必要があります。MANPATH.bashrc

簡単な例は次のとおりです。

/usr/binMac OS/usr/local/apache-ant-1.8.2.bashrc

# Mac OS X original PATH
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin"
# Apache Ant 1.8.2
PATH="$PATH:/usr/local/apache-ant-1.8.2/bin"
export PATH

/usr/bin/上書きしたくないバイナリに加えて、通常は別のバイナリがあるため、以前のバージョンをエクスポートする必要があります。/usr/sbin/ant/bin/ant

問題は、入力するとwhich ant出てくるということです。そのため、最新バージョンを使用するように/usr/bin/名前を変更しました。/usr/bin/ant/usr/bin/ant-old

これが動作している間にシステムバイナリを置き換えるより良い方法があるかどうか疑問に思います(主に最後の名前の変更を避けるため)。

ベストアンサー1

システムバイナリの交換は最後の手段でなければなりません。

私の提案は次のとおりです

  • 他のシステムディレクトリと一緒に配置してください/usr/local/bin/usr/binPATH
  • /usr/local/bin/antへのシンボリックリンクを作成します/usr/local/apache-ant-1.8.2/bin/ant
  • /usr/local/apache-ant-1.8.2/bin最初に含めないでください。PATH

この方法:

  • カスタマイズ/usr/local/binはシステムのデフォルトを上書きします。
  • シンボリックリンクは、/usr/local/bin/antそのバージョンをどこで入手したかを示しますant
  • デフォルト設定で何かをテストするには、テスト中に設定/usr/local/binからその設定を削除します。PATH

おすすめ記事