IDL/General

Mac OS 10.15 (Catalina)에서 IDL의 폴더 접근 문제

이상우_idl 2020. 8. 24. 16:25
728x90
반응형

오늘 언급하고자 하는 이슈는 Mac OS 10.15 (Catalina)에서 IDL이 일부 폴더들에 접근하지 못하는 문제에 관한 것입니다. 최근에 Harris의 웹페이지에서 이 이슈에 관한 게시물이 올라왔는데 나름 중요하다고 생각되어 이 내용을 제가 여기서 옮겨오면서 제 나름대로 다듬어서 소개하고자 합니다. 원문은 아래 링크에 있습니다.

 

링크 누르기

 

이 이슈의 증상은 Mac OS 10.15 계열의 Catalina OS에 설치된 IDL에서 특정 폴더들에 대한 파일 접근이 제한되는 문제입니다. 어떤 버전의 IDL이냐는 상관이 없고, Mac OS가 10.15 계열이라는 것이 가장 핵심입니다. 사실 이 문제는 비단 IDL만의 문제는 아니고 서드파티 어플리케이션들 모두에 해당됩니다. 근본적인 이유는 Mac OS 10.15 Catalina부터 도입된 파일 시스템의 보안성 강화입니다. 이러한 변화로 인하여 서드파티 어플리케이션 프로그램들의 경우 특정 폴더로의 접근 허용 여부를 사용자가 직접 설정해주는 기능을 별도로 추가해야만 합니다. 즉 이러한 별도의 설정 기능이 추가되지 않은 서드파티 어플리케이션은 보안상 접근이 제한된 폴더에 바로 접근할 수가 없습니다. IDL의 경우는 아직 이러한 별도의 설정 기능이 아직 추가되지 않은 상태입니다. 보안상의 문제로 접근이 원칙적으로 허용되지 않는 폴더들 즉 "금지된" 폴더들은 다음과 같습니다.

 

Documents

Desktop

Downloads

External Drives

 

따라서 IDL에서 이러한 폴더들에 위치한 파일에 접근하는 시도를 할 경우 'file does not exist'와 같은 오류가 발생할 수 있습니다. 예를 들면 다음과 같은 증상들입니다.

 

IDL> CD, '/Users/YourUsername/Desktop'

% Unable to get working directory.

  No such file or directory

 

IDL> DIALOG_PICKFILE(PATH='/Users/YourUsername/Desktop')

*Dialog window appears with no files or subfolders shown*

 

IDL> NCDF_GET, '/Volumes/PortableSSD/Data/test.cdf', 'data', data

Error in ncdf_get: NCDF_OPEN: Unable to open the file "/Volumes/PortableSSD/Data/test.cdf". (NC_ERROR=-31)

 

그리고 Mac OS 10.15 이전의 OS에서 IDL을 잘 사용하다가 OS를 10.15로 업그레이드한 이후에 겪을 수 있는 증상이 있는데, 바로 기존에 만들어놨던 프로그램 파일들(.pro 파일들)이 새로운 OS에서 IDL을 구동했을 때에는 그 파일들이 없다는 메시지가 에디터상에서 보이는 경우도 있습니다(제가 실제로 겪었습니다).

 

이러한 이슈에 대한 나름의 해결책은 IDL을 터미널에서 실행하는 것입니다. 통상적으로는 Mac OS에서 IDL을 설치하고 실행할 때 아마도 Applications/IDLxx/ 폴더 내에 있는 IDLxx 아이콘 버튼을 더블클릭하여 실행하는 경우가 많은데요. 이렇게 아이콘으로 IDL을 실행할 경우에는 위에서 언급한 폴더 접근 권한에 관한 이슈에 직빵으로 걸리게 됩니다. 하지만 그 대신 IDL을 터미널에서 실행하면 이러한 이슈를 피할 수 있게 됩니다. 즉 터미널에서 IDL을 실행한 상태에서 "금지된" 폴더에 있는 파일을 접근하는 시도를 할 경우에는 터미널에 대한 접근을 허용할 것이냐는 질문을 받을 수 있는데, 여기서 허용하겠다고(Allow) 응답을 하는 것이 필요합니다. 터미널에서 IDL을 실행하는 방법은 다음과 같습니다.

 

1. Mac OS에서 터미널(Terminal) 앱을 실행한다.

2. 프롬프트상에서 우선 IDL 설치 폴더로 이동한다.

  예) cd Applications/harris/idl88/bin

3. 프롬프트상에서 IDL을 실행한다.

  IDL 워크벤치 실행 명령은 ./idlde

  커맨드라인 IDL 실행명령은 ./idl

 

만약 이와 같은 방식으로 터미널에서 IDL을 처음 실행한 후에는 Mac OS 자체의 '시스템 환경설정' -> '보안 및 개인정보 보호' 에서 '개인정보 보호' 탭의 '파일 및 폴더' 섹션에서 터미널이 "금지된" 폴더들로 접근하는 것에 대한 허용 여부를 따로 설정할 수 있게 됩니다. 물론 허용으로 설정해둬야 할 것입니다. 원문 링크의 스크린샷을 보면 Terminal 항목의 하위에 여러개의 항목들이 있는데, 제 Mac OS의 경우는 다음과 같이 '문서 폴더' 즉 Documents만 나와 있습니다. 아마 사용자의 환경에 따라 보이는 항목들이 약간 차이가 날 수도 있는 것 같습니다.

 

 

그런데 저의 경우도 이러한 이슈로 인하여 그간 이런저런 설정 변경을 몇번 했었는데, 그 과정이 저도 지금 정확히 기억이 안나지만, 무슨 이유에서인지는 몰라도 idlde.darwin.x86_64라는 항목도 있고 그 아래에 문서 폴더에 대한 접근 허용이 가능해진 상태입니다. 따라서 제 경우는 터미널에서 실행을 할 때 뿐 아니라 그냥 아이콘으로 실행했을 경우에도 문서 폴더에 대한 접근이 가능한 상태입니다. 아마도 이러한 부분은 사용자의 환경에 따라 차이가 날 수도 있는 것 같은데, 여러분들도 한번 확인해보시기 바랍니다. 그리고 이러한 해결 과정에 따른 결과는 아마 Mac OS에서 IDL을 실행하는 계정이 관리자 권한이냐 아니면 일반 유저 권한이냐에 따라서도 차이가 날 수도 있습니다. 아마 개인 유저들은 다들 관리자 계정으로 사용하실 것 같습니다.

 

하여간 얼마전 Java 문제도 그렇고 Mac OS에서 IDL을 사용하는데 있어서 다소 귀찮은 이슈들이 간간히 발생하는데, 뭐 예전부터도 항상 그래왔던 일이라서 그냥 그런가보다 하고 사용하고 있습니다. 제가 보기엔 Apple의 정책이 요즘와서 여러가지 측면에서 더 까다로와진 부분도 있는 것 같고 그러한 영향의 하나가 아닌가 합니다(지극히 제 개인적인 생각입니다). 하여간 Mac OS Catalina에서 IDL을 사용하면서 이와 같은 이슈를 겪은 유저들께서는 이러한 방법을 해결을 한번 해보시기 바랍니다. 그리고 이와 관련하여 궁금한 점이나 제보 있으시면 댓글 또는 이메일로 연락(lee@selab.co.kr)주시면 감사하겠습니다.

반응형