최신 Linux 배포판(Ubuntu 또는 RedHat 등)에서 OS X 버전의 Unix 도구를 구할 수 있습니까?

최신 Linux 배포판(Ubuntu 또는 RedHat 등)에서 OS X 버전의 Unix 도구를 구할 수 있습니까?

나는 Linux의 최신 배포판과 paste같은 특정 명령줄 도구의 기본 버전 과 . 이로 인해sedOSX답변OS X거의 모든 Linux 배포판에서 작동하더라도 작동하지 않습니다 .

OS X그렇다면 복사본 없이도 OSX에서 올바른 기능을 테스트할 수 있도록 최신 Linux 배포판에서 표준 Unix 도구의 전체 버전 세트를 얻을 수 있는 표준 방법이 있는지 궁금합니다 .

답변1

의견에서 언급했듯이 Apple은소스 코드해당 버전의 도구를 사용할 수 있습니다. 많은 일반적인 명령이"shell_cmds" 패키지, 페이스트와 sed는 "text_cmds". 소스코드를 받아 컴파일할 수 있습니다.

소스로 이동하여 명시적으로 FreeBSD 관련 테스트, 특히 __FBSDID("...");거의 모든 파일에 있는 줄을 제거해야 하지만 사실상 이들 모두 Linux 시스템에서 잘 작동합니다. 나는 그것들을 패키지화하는 배포판을 모릅니다. 많은 배포판에서는 일부 공통 도구의 BSD 버전을 패키지화합니다. 이는 OS X 버전과 매우 유사하지만(종종 동일), 일반적으로 붙여넣기 및 sed와 같은 기능은 포함하지 않습니다. 예를 들어 데비안에는 다음이 포함됩니다.8개의 패키지가 호출되었습니다.bsdX(그 중 어느 것도 해당 명령을 갖고 있지 않습니다). 특히 Apple 버전이나 여기에 포함되지 않은 많은 도구의 경우 위 지침에 따라 필요할 때 직접 구축하는 것이 어렵지 않습니다.

즉, GNU 및 BSD 도구의 공통 하위 집합은 다음과 같습니다.POSIX 사양, 모든 기본 명령이 정의되어 있습니다. 당신은 찾아 볼 수 있습니다붙여넣기 명령또는sed어디에서나 어떤 주장이 허용되는지 확인하세요. 이것이 이식 가능한 코드를 작성하는 "도덕적으로 올바른" 방법입니다. GNU 도구와 BSD 도구 모두 확장 기능을 가지고 있지만 POSIX 내에 있으면 코드가 두 도구 모두에서 작동합니다. 그래서항상 POSIX 인수만 사용하고 있는지 확인하세요.그러면 당신이 말하는 내용은 OS X와 ​​다른 시스템에서도 동일하게 작동해야 합니다.

답변2

대부분의OSX의 unixy 도구는 오픈 소스입니다., 많은 도구의 소스 코드는 Linux에 없는 라이브러리 및 커널 기능에 의존합니다(오픈 소스가 아니며 추가 노력이나 라이센스 위반 없이 Apple 이외의 하드웨어에서 실행할 수 없음). 큰 노력 없이도 Linux에서 실행할 수 있을지 의심스럽습니다.

OSX의 유닉스 레이어는 다음에서 포팅되었습니다.FreeBSD그리고 많은 프로그램은 OSX 릴리스 당시 최신이었던 FreeBSD 릴리스의 프로그램과 매우 유사합니다. 가상 머신에서 FreeBSD를 실행하고 그곳에서 테스트할 수 있습니다. 당신은 또한 실행할 수 있습니다오픈BSD; OpenBSD는 보안에 중점을 두고 있으며 새로운 기능을 채택할 때 FreeBSD보다 훨씬 보수적입니다. 이식성을 위해 스크립트를 테스트하려면 다음을 설치할 수도 있습니다.오픈인디애나, 이는 다음의 오픈 소스 포크입니다.솔라리스현재 단종된 OpenSolaris 에디션을 기반으로 합니다. 솔라리스는 이래서시스템 V기반의 Solaris와 OpenBSD는 Unix 이식성에 대한 상당히 광범위한 관점을 제공합니다.

온라인에서 다양한 Unix 변형 문서를 확인할 수도 있습니다.

관련 정보