요즈음은 GTK 개발 작업을 파스칼로 하고 있다.


개발이 빠르고 빌드와 컴파일이 빠르기 때문이다.


한가지 단점이 있다면.. 기존의 C언어로서의 소스코드를 똑같이 제공하지 못한다는 점...


하지만 다른 상대방도 free pascal 소스코드만 있다면 어떤 아키텍쳐 에서도 리컴파일, 즉 리빌드가 가능하다.

(armhf에서도 가능하다.)


하지만 정작 중요한 것은 gtk를 개발할때 부딛히는 한가지 문제점은 프로그램 자체에서의 홈폴더에서의 데이타를 불러 오는 일이다.


물론 예를들어 홈폴더가 user일 경우


memo1.lines.loadfromfile('/home/user/')로서 지정하면 얼마든지 홈폴더의 데이터를 가져올수 있다.


그러나 정작 중요한 문제는 이것은 개발자 입장에서의 홈 폴더이지 배포 후 타인의 홈폴더는 될 수 없다.


또한 당연히 '~/' , '$USER' 등은 전부 먹히질 않는다.


이 문제를 해결 하기 위해 여러 포스팅들은 전부 읽어 봤지만 명확한 해결 방안이 없다는 것을 깨닫고는 본격적인 스스로의 답안 찾기에 들어갔다.


가장 중요한 이유는 파스칼 언어 자체에서 BASH를 지원하지 않기 때문이다.


그래서 가장 쉬운 돌려치기 방법은 인식이 가능한 기존의 FS(파일 시스템)를 이용한 방법인데 그냥 /tmp 나 /usr . /var등 기존의 디렉토리를 이용 하는 방법이다.


하지만 이것은 불러오기는 가능하지만 저장은 안 된다는 점이다.


원할하게 하려면 프로그램 사용자가 본 프로그램을 sudo 명령을 통해 실행해야만 한다.


하지만 사용자에게 안전하게 소프트웨어를 개발하려면 최대한 su명령 없이 소프트웨어를 사용할 수도록 만드는 것이 바람직 하다.


그래서 본 필자가 찾아낸 가장 이상적인 방법은 바로 홈 디렉터리의 심볼릭 링크를 상위 파일 시스템에 거는 것이었다.


물론 /tmp 폴더를 제외한 나머지 상위 폴더들은 sudo 명령이 있어야만 링크가 가능하다.


그러나 이 문제는 사용자가 처음 sudo 명령으로 소프트웨어를 설치할때 충분히 해결 할 수가 있다. (debian/postinst)


그리하여 이런 방식으로 하여금 예를 들어 /usr/share/program/home/ 등의 경로를 사용하여 파스칼 gtk 에서의 홈폴더에 대한 데이타 불러오기가 가능해 진다.





+ Recent posts