いくつかのコマンドラインツール(例えば、最新のLinuxディストリビューションpaste
)のデフォルトバージョンがあります。sed
OSX
回答OS X
ほとんどすべてのLinuxディストリビューションで動作しますが、動作しません。
OS X
そのため、コピーなしでOSXでソリューションの正しい機能をテストできるように、最新のLinuxディストリビューションから完全な標準のUnixツールセットを取得する標準的な方法があるかどうか疑問に思います。
答え1
コメントで述べたように、Appleはソースコードこれらのツールの利用可能なバージョン。一般的に使用される多くのコマンド"shell_cmds"パッケージ、ペーストとsedは"テキストコマンド》。ソースコードを取得してコンパイルできます。
__FBSDID("...");
実際には、ソースコードに移動してほぼすべてのファイルからFreeBSD関連のテストラインを明示的に削除する必要がありますが、すべてLinuxシステムでうまく動作します。私はこれをパッケージ化するディストリビューションを知りません。多くのディストリビューションでは、OS Xのバージョンと非常によく似た(しばしば同じ)いくつかの一般的なツールのBSDバージョンをパッケージ化しています。しかし、通常、Pasteやsedなどの機能は含まれていません。たとえば、Debian には以下が含まれます。8つのパッケージが呼び出されます。bsdX
(それらのどれもこれらのコマンドを持っていません)。特にAppleのバージョンやここに含まれていない多くのツールを使用すると、上記の指示に従う必要があるときに自分で構築するのは難しくありません。
要約すると、GNUおよびBSDツールの共通サブセットは次のとおりです。POSIX仕様、すべての基本コマンドが定義されています。確認できます貼り付けコマンドまたはsedどこでも許可されているパラメータが何であるかを確認してください。これが移植可能なコードを書くための「道徳的に正しい」方法です。 GNUツールとBSDツールの両方に拡張がありますが、POSIXの範囲内にある場合、コードは両方のツールで実行されます。だから常にPOSIXパラメータのみを使用していることを確認してください。もしそうなら、あなたが言ったことはOS Xや他のシステムにも同じように適用されるべきです。
答え2
たとえほとんどOSXのUnixyツールはオープンソースです。多くのツールのソースコードは、Linuxには存在しないライブラリやカーネル機能に依存しています(オープンソースではなく、追加の努力やライセンス違反の可能性がない限り、Apple以外のハードウェアでは実行できません)。多くの努力がなくてもLinuxで実行できるかどうか疑問です。
OSXのUnixレイヤーは以下から移植されました。FreeBSD多くのプログラムは、OSXがリリースされたときのFreeBSDの現在のバージョンと非常によく似ています。仮想マシンでFreeBSDを実行してそこでテストできます。また、実行することができますオープンBSD; OpenBSDはセキュリティに重点を置いており、新機能を採用する上でFreeBSDよりはるかに保守的です。スクリプトの移植性をテストするには、次のものをインストールすることもできます。インディアナオープン、これはオープンソースのフォークです。ソラリス現在廃止されているOpenSolarisのバージョンに基づいています。ソラリスは以来システムVSolarisとOpenBSDに基づいて、Unixの移植性を非常に広く理解することができます。
また、オンラインでさまざまなUnixバリアントに関するドキュメントを見ることもできます。