---
、通常のオプション--help-まあ、あなたは一般的に開発しています習慣。 私もそのような人々に属し、Terminal.appで数十のコマンドを入力する必要があったとき、10分後
少し後で、私は-なぜ、実際にはGNUバージョンのユーティリティを使用できないのか-システムに付属していないという理由だけで考えましたか? いいえ、これはUNIXの方法ではありません!
数分の検索で疑念が確認され、必要なユーティリティのバージョンがGNU coreutilsで見つかりました。 今、問題はそれらをインストールする方法でした。
一般的に、2つのオプションがありました。
- 自分でソースからビルドする
- より文明化されたのは、完全に通常のパッケージマネージャーであるMacPortsを使用することです。
私は2番目の方法を使用することを好みましたが、これは皆の個人的なビジネスです:-)
そのため、MacPortの簡単なインストールガイドは公式Webサイトで見つけることができます-プロセスは非常にシンプルで簡単です。AppleDeveloper Tools(特にxcode)をインストールするだけです。
MacPortのインストール後、最も単純なケースでは、ターミナルで1つのコマンドを実行するだけで済みます。
sudo port install coreutils
なぜ最も単純な場合ですか? 問題は、MacPortはデフォルトではファイルユーティリティを上書きせず、そのバージョンを別の名前で別のディレクトリにインストールすることです。
/ opt / local / bin / g lsの代わりに/ usr / bin / ls
/ opt / local / bin / g / usr / bin / findの代わりにfind
...
この問題を解決するにはいくつかの方法があります。特定の問題を選択することは全員のビジネスです。それらをリストします。
- 最も簡単な方法は、with_default_namesオプションを使用してcoreutilsをインストールすることです。
この場合、ユーティリティはデフォルトで上書きされます。 システムユーティリティが互換性のあるユーティリティで置き換えられても、システム全体としては評価されない可能性があるため、この方法を使用することはお勧めしません。sudo port install coreutils + with_default_names
- 2番目のオプションは、デフォルトユーティリティの名前を変更し、新しいプログラムへのリンクを追加することです。
この場合、ユーティリティの元のバージョンは、接頭辞「m」が付いた名前で利用できます。 また、最善の方法ではありません。/usr/bin/lsを使用すると、例外なくすべてのプログラムがGNUバージョンのユーティリティを取得するためです。mv / usr / bin / ls / usr / bin / mls ln / opt / local / bin / gls / usr / bin / ls
- 3番目の方法は、イデオロギー的に最もベテランです。 リンクは「g」プレフィックスなしで作成されますが、
/opt/local/bin
次に、ローカルのln / opt / local / bin / gls / opt / local / bin / ls
~/.bashrc
で、このパスを PATHの/usr/bin
に追加します。
または、一般に別のディレクトリにリンクを作成し、$ PATHの前にリンクを書き込むことができます。 この場合、GNUバージョンのユーティリティを使用するのは、あなただけで、お気に入りのシェル(macportからインストールすることもできます)でのみ作業します。 他のすべてのプログラムと人々は、それらの存在を推測することさえせず、標準のBSD互換のfileutilsを使用します。export PATH = / opt / local / bin:$ PATH
- grubozavrの男性gribozavrがアドバイスする4番目のオプション(および、私自身もこれまで考えもしなかった白髪の恥)は、別名を作成することです。
これを〜/ .bashrcに追加しますエイリアスls = '/ opt / local / bin / gls'
したがって、コマンドユーティリティの完全なGNUバージョンを取得します。これは、義務や誠実な衝動としてMacを使用するLinuxoidにとって非常に便利です(私は誇らしげに後者にランクされています)。