유닉스/리눅스 시스템에서 chmod
함수는 "심볼릭 모드"를 지원합니다. chmod u+x ...
은 사용자에게 실행 권한을 추가하는 상징적 인 형식입니다. Ruby의 FileUtils
에있는 chmod
함수는 권한으로 절대 비트 마스크 만 지원합니다. 즉, FileUtils.chmod(0777, ...)
만 수행 할 수 있지만 FileUtils.chmod('u+x', ...)
은 작동하지 않습니다.명시 적으로 시스템 명령어를 호출하지 않고 Ruby에서 chmod의 심볼릭 모드를 복제하기
이 작업을 수행하는 방법은 system
명령을 직접 호출하는 것입니다. 즉, system("chmod u+x ...")
명령을 직접 호출하는 것이지만 모든 곳에서 껍질을 생성하지 않고 가능한 한 Ruby 도메인에 코드를 유지하는 것이 좋습니다. 또는 File
객체, File.stat
을 반복하고 기존 비트 마스크를 가져 와서 개별적으로 수정할 수 있지만 심볼 모드는 훨씬 더 간결하고 오류가 발생하지 않는 파일 glob을 지원합니다.
더 우아한 방법으로이를 수행 할 수있는 방법이 있는지 아는 사람이 있습니까?
입니다, 그래서 그 기능은 아직 나에게 사용할 수없는 것 같아요. –
업데이트하지 못하게하는 것이 있습니까? RVM 또는 rbenv를 사용하면 대체 Ruby 버전을 설치하고 앱 단위로 전환하는 것이 번거롭지 않습니다. –
우리의 현재 운영 시스템은 아직 1.8에있는 Ubuntu Lucid에 붙어 있습니다. 실제로는 가장 최신 버전 인 Oneiric도 Ruby 1.8입니다. Debian 패키지는 Ruby를 수동으로 업그레이드 할 때 잘 작동하지 않습니다. 저는 RVM 기반 관리 시스템으로의 마이그레이션을 추진하려고 생각했지만 아직 없습니다. –