일부 명령줄 도구(예: 최신 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와 같은 기능은 포함하지 않습니다. 예를 들어 데비안에는 다음이 포함됩니다.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 버전을 기반으로 합니다. 솔라리스는 이래서시스템 VSolaris 및 OpenBSD를 기반으로 하여 Unix 이식성에 대해 상당히 폭넓게 이해할 수 있습니다.
또한 온라인에서 다양한 Unix 변형에 대한 문서를 볼 수도 있습니다.