Linux
是否有可能在現代 Linux 發行版(如 Ubuntu 或 RedHat)上獲得 OS X 版本的 Unix 工具?
我觀察到某些命令行工具的預設版本(例如
paste
Linuxsed
與OSX
. 這導致即使它們適用於幾乎所有 Linux 發行版 的答案也不起作用。OS X
所以我想知道,是否有一種標準方法可以在現代 Linux 發行版上獲得標準 Unix 工具的全套
OS X
版本,這樣我們就可以在 OSX 上測試解決方案以確保正確的功能,而無需複制?
正如評論中提到的,Apple提供了這些工具版本的原始碼。許多常用命令在“shell_cmds”包中,而 paste 和 sed 在“ text_cmds ”中。您可以獲取原始碼並進行編譯。
幾乎所有這些都可以在 Linux 系統上正常工作,儘管您經常必須跳入原始碼並明確刪除特定於 FreeBSD 的測試,尤其
__FBSDID("...");
是幾乎每個文件中的行。我不知道任何將這些打包的發行版。許多發行版確實打包了一些常用工具的 BSD 版本,這些工具與 OS X 版本非常接近(通常相同),儘管它們通常不包含 paste 和 sed 之類的東西。例如,Debian 包括八個被稱為bsdX
的軟體包(它們都沒有這些命令)。特別是對於 Apple 的版本,或者對於其中未包含的許多工具,當您需要它們時,根據上述說明自行建構它們並不難。綜上所述,GNU 和 BSD 工具的通用子集是**POSIX 規範,其中定義了所有基本命令。您可以查找paste 命令或sed並查看它保證在任何地方都接受哪些參數。這是編寫可移植程式碼的“道德上正確”的方式:GNU 工具和 BSD 工具都有擴展,但如果您留在 POSIX 中,您的程式碼將適用於兩者。因此,請檢查您是否始終只使用 POSIX 參數**,然後您所說的應該同樣適用於 OS X 和其他系統。