Solaris 10 11/06 릴리스 노트

Solaris 명령 및 표준

다음 절에서는 Solaris 10 OS의 특정 명령 및 표준에서 변경된 동작에 대해 설명합니다.

실패한 구성 해제 명령 cfgadm이 알림 없이 나중에 성공할 수 있음(6483258)

때때로 cfgadm -c unconfigure 명령이 대기 중인 I/O로 인해 실패합니다. 변경된 커널이 있는 경우 명령이 오프라인으로 다시 시도됩니다. 그러나 cfgadm의 구성 해제 명령은 사용자에게 알려짐 없이 나중에 성공할 수 있습니다.

해결 방법: cfgadm -al 명령을 실행합니다.

Bash 2.0.5b는 일부 환경 변수를 더 이상 설정하지 않음

Solaris 10 OS에는 Bash 2.0.5b가 포함되어 있습니다. 이 쉘은 다음 변수를 환경으로 내보내는 작업을 더 이상 자동으로 수행하지 않습니다.

이 새로운 동작은 에서 이러한 변수에 기본값을 지정하더라도 적용됩니다.

해결 방법: 이 변수들을 수동으로 내보냅니다.

새로운 ln 유틸리티에서 -f 옵션 필요

/usr/bin/ln 동작이 SVID3부터 XCU6까지의 모든 표준을 준수하도록 변경되었습니다. ln 명령을 -f 옵션 없이 사용하여 기존 대상 파일에 연결하려고 하면 링크가 설정되지 않습니다. 그 대신 표준 오류에 대한 진단 메시지가 기록되고 명령으로 계속해서 나머지 소스 파일을 연결합니다. 마지막으로 ln 명령은 오류 값과 함께 종료됩니다.

예를 들어, 파일 b가 존재하면 ln a b 구문은 다음과 같은 메시지를 생성합니다.


ln: b: File exists

이 동작 변경은 -f 옵션 없이 ln 명령을 포함하는 기존 쉘 스크립트 또는 프로그램에 영향을 줍니다. 과거 작동에 사용된 스크립트가 이제 Solaris 10 OS에서 실패할 수 있습니다.

해결 방법: ln 명령을 -f 옵션과 함께 사용합니다. 이 링크 유틸리티를 실행하는 기존 스크립트가 있으면 명령의 새로운 동작에 부합하도록 스크립트를 수정해야 합니다.

새로운 tcsh에서 대시나 등호 기호를 사용하는 setenv 변수 이름 거부

Solaris 10 OS에서 tcsh는 버전 6.12로 업그레이드되었으며 이 버전에서는 이름에 대시나 등호 기호를 사용하는 환경 변수가 더 이상 적용되지 않습니다. setenv 행이 들어 있고 이전 Solaris 버전에서 작동했던 스크립트가 현재 Solaris 10 릴리스에서 오류를 생성할 수 있습니다. 다음과 같은 오류 메시지가 나타납니다.


setenv: Syntax error

자세한 내용은 Solaris 10 OS의 tcsh 매뉴얼 페이지를 참조하십시오.

해결 방법: 환경 변수 이름에 대시나 등호 기호를 사용하지 마십시오.

STDIO getc 그룹 EOF 조건 동작 변경

엄격한 표준 C 준수 모드에서 작성된 응용 프로그램은 특정 라이브러리 함수의 동작 변경으로부터 영향을 받습니다. 그 한 가지 예로는 cc -Xc 또는 c89 컴파일 모드를 사용하여 컴파일된 응용 프로그램입니다. 다음 라이브러리 함수의 동작이 변경되었습니다.

1990 C 표준의 공식적인 해석에 따르면 EOF(End-Of-File) 조건이 설정되면 후속 입력 작업에 대해 파일에서 더 이상 데이터가 반환되지 않습니다. 파일 포인터가 재배치되거나 오류 및 EOF 플래그가 응용 프로그램에서 명시적으로 지워진 경우는 예외입니다.

나머지 모든 컴파일 모드의 동작은 변경되지 않았습니다. 특히 EOF 표시기가 설정된 후에도 이 인터페이스들은 새로 작성된 추가 데이터를 스트림으로부터 읽을 수 있습니다.

해결 방법: 스트림에서 EOF 조건이 보고된 후에 추가 데이터를 읽으려면 스트림에 대해 fseek() 또는 clearerr()을 호출합니다.

ps 명령의 출력 열 너비가 넓어짐

UID, 프로세서 ID 및 누적 실행 시간이 늘어났기 때문에 ps 명령 출력의 열 너비가 넓어졌습니다. 고객의 스크립트에서는 고정 출력 열을 지정하지 않아야 합니다.

해결 방법: 스크립트에서 ps 명령의 -o 옵션을 사용해야 합니다.

자세한 내용은 ps(1) 매뉴얼 페이지를 참조하십시오.

ping -v 명령이 IPv6 주소에서 작동하지 않음(4984993)

IPv6(Internet Protocol version 6)을 사용하는 주소에 ping -v 명령이 적용되면 이 명령은 오류를 일으킵니다. 다음과 같은 오류 메시지가 나타납니다.


ping: setsockopt IPV6_RECVRTHDRDSTOPTS Invalid argument

해결 방법: 없음. ping -v가 제공하는 것과 동일한 ICMP 패킷 정보를 얻으려면 snoop 명령을 사용합니다.