OSX El Capitan Beta3에서는 Unix“ln -s”명령이 허용되지 않습니다


54

"Operation not allowed"오류가 발생했을 때 Symphony 용 nodejs를 설치하고있었습니다. 왜 이런 일이 일어 났는지 아십니까?

MacBook-Pro-de-XXX : ~ XXX $ sudo ln -s / usr / local / bin / node / usr / bin / node

암호:

ln : / usr / bin / node : 작업이 허용되지 않습니다


1
먼저 / usr / bin / node가 이미 설정되어 있는지 확인하십시오. 변경하려면 ln -sf를 사용하여 심볼릭 링크를 강제 실행할 수 있습니다.

MacBook-Pro-de-XXX : ~ XXX $ 어느 노드 / usr / local / bin / node
Kurr0

ls -la / usr / bin / node

MacBook-Pro-de-XXX : ~ XXX $ ls -la / usr / bin / node ls : / usr / bin / node : 해당 파일 또는 디렉토리가 없습니다
Kurr0

답변:


70

이것은 새로운 OS X 버전에서 소위 "루트리스"모드입니다. 특정 시스템 디렉토리를 읽기 전용 (관리자에게도)으로 효과적으로 만듭니다. "/ usr"은 보호 된 디렉토리 중 하나입니다 (이 규칙에서 제외되는 유일한 서브 디렉토리는 "/ usr / local"입니다).

다음 명령을 사용하여이 루트없는 모드를 비활성화 할 수 있습니다.

$ sudo nvram boot-args="rootless=0"
$ sudo reboot

그러나 이것은 권장되지 않습니다! 가장 좋은 방법은 "/ usr / local"에만 사용자 지정 항목을 설치하는 것입니다.


업데이트 ( 27-10 월 15 일) : 10.11 (El Capitan) 공개 릴리스

Apple이 상황을 바꿨 기 때문에 위에서 설명한 해결 방법은 더 이상 El Capitan의 공개 릴리스 에서는 작동 하지 않습니다 .

"루트리스"모드 (일명 시스템 무결성 보호, "SIP")를 비활성화하는 올바른 방법은 임시로 복구 모드로 부팅하고 (부팅 중에 Command + R을 유지 ) 터미널에서 csrutil disable명령을 사용 하거나 csrutil enable다시 활성화하는 것입니다. 복구 모드에서 시작되는 설치 프로그램 메뉴를 통해 터미널에 연결할 수 있습니다.


2
바람직하지는 않지만 지금은 MacTeX가 기대하는 것 같습니다 /usr/texbin.
David Lord

루트없는 모드를 비활성화하기 위해 NVRAM을 수정해도 El Capitan에서는 GM 버전 이상에서는 작동하지 않습니다. 다음 버전에서 작동하는 방법에 대해서는이 답변을 확인하십시오. stackoverflow.com/questions/32590053/…
Chris Ostmo

이것은 나에게도 효과가 없었습니다.
gsscoder

1
여전히 줘Operation not permitted
Sinux

2
내 해결 방법은 / usr / local / bin
anon58192932

-2

El Capitan의 내 버전에는 /bin디렉토리가 없습니다.

/usr/local/bin

따라서 수정 사항은 다음과 같습니다.

mkdir -p /usr/local/bin

-p존재하지 않는 경우 플래그는 디렉토리 (및 전체 경로에서 우연히 어떤 DIRS)를 생성합니다.

그런 다음 "루트리스"모드의 일부 가 /usr/local/bin아니기 때문에 심볼릭 링크를 만들고 앱을 복사 할 수 있습니다 /usr/local.


문제를 해결하는 데 도움이되지 않습니다. 때로는 / usr / bin에 심볼릭 링크가 필요하며이를 피할 수 없습니다.
Dmitri
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.