다른 스레드에서(이와 같은 목록을 정렬하는 가장 간단한 방법은 무엇입니까) 솔루션을 제공할 수 있으므로 시스템에 "GNU ls"가 있는지 질문을 받았습니다. 우리는 GNU ls를 설치하지 않았지만 다음과 같은 생각이 들었습니다.
"GNU ls"와 같은 것을 설치할 때 "ls"만 설치합니까, 아니면 Unix 명령에 대한 대안 세트를 포함합니까?
GNU ls는 base-O/S ls 명령이 지원하는 모든 플래그를 지원합니까?
두 번째 문제는 AIX 시스템에 ksh93 스크립트가 많고 이들이 예상대로 계속 실행되는지 확인하고 싶기 때문입니다. GNU ls가 설치되어 있는 경우 특정 ksh 스크립트(예: /opt/GNU/ls)의 기능이 필요할 때 GNU ls에 대한 정규화된 경로를 사용할 수 있습니까? 사람들이 일반적으로 성숙한 시스템에서 GNU 명령을 추가/사용하는 방식입니까?
답변1
당신은 만들 수 있습니다GNU 핵심 도구소스 코드에서 생성된 ls(1) 명령을 PATH 아래의 다른 이름(예: )으로 수동으로 복사합니다 /usr/bin/gls
.
예를 들어, 가장 간단한 단계는 다음과 같습니다.
./configure <configure-options-you-may-want>
make
cp src/ls /usr/bin/gls
답변2
- GNU 바이너리를 어떻게 설치했는지에 따라 다릅니다. 가장 일반적인 방법은마이클 페첼스 홈페이지또는IBM의 AIX 오픈 소스 소프트웨어 도구 상자. 두 경우 모두(다른 패키지에서도 마찬가지지만, 이 두 가지 이외의 다른 패키지는 사용한 적이 없습니다) 바이너리는 /bin에 설치되지 않으므로 시스템 바이너리 문서를 덮어쓰지 마십시오. 이 경우 PATH 변수를 변경하여 사용할 바이너리(AIX 또는 GNU)를 선택할 수 있습니다. 즉:
PATH=/usr/local/gnu/bin # GNU 바이너리 PATH="$PATH:/bin:/usr/bin" # AIX 시스템 바이너리 파일 경로="$경로:/일부/기타/경로:[...]" 내보내기 경로
/usr/local/bin
AIX 바이너리 사용(첫 번째)으로 되돌리려면 처음 두 줄(GNU 바이너리가 설치되어야 하는 위치)을 반대로 바꾸세요 .
패키지의 내용은 비슷합니다. 사용하는 패키지에 따라 다르지만 제가 아는 한 IBM의 GNU-ls를 포함하는 패키지는 없습니다.
- 말하기가 어렵습니다. GNU 도구는 매우 불안정하고 주어진 규칙 세트를 따르므로(예를 들어 AIX는 POSIX와 동일합니다) 오늘 사실이 내일은 틀릴 가능성이 높으며 그 반대의 경우도 마찬가지입니다. 일부 GNU 유틸리티는 POSIX 규칙을 따르려고 시도하지만 다른 유틸리티는 그렇지 않습니다. 나는 특정 유틸리티에 기여하는 사람의 수가 변함에 따라 시간이 지남에 따라 이러한 태도도 바뀔 것이라고 생각합니다.