[완료] /usr/X11R6/*과 /usr/*/X11이 따로 있는 이유가 궁금합니다.
근근히 kubuntu를 쓰고 있는 사용자입니다.
X Window System에 대해 이것저것 관리를 하려다 보니 일단 filesystem이 복잡해서...
특히 이해가 안되는건 /usr/X11R6/bin 이런 것도 있고 /usr/bin/X11 이런 것도 있다는 점입니다.
kubuntu에서는 /usr/X11R6/bin도 /usr/bin에 대한 링크이고
/usr/bin/X11도 /usr/bin에 대한 링크로 되어 있더군요.
그런데 /usr/X11R6/lib와 /usr/lib/X11은 또 서로 다릅니다.
X Window System의 filesystem과 관련된 자료란 자료는 죄다 찾아봤지만 영...
다만 찾아본 자료 중에서 XFree86에 대한 자료에서는 /usr/X11R6/*만 언급하고 있어서
/usr/X11R6/*은 XFree86에서의 filesystem 구조인가 싶고,
/usr/bin/X11 또는 /usr/lib/X11은 XFree86이 아닌 X Window System에서 추가된(?)
filesystem이 아닌가 추측하고 있습니다만...
다른 자료를 보면,
Linux From Scratch에서는 /usr/X11R6에 대해 /usr/X11이라는 링크를 걸도록 하고 있고
http://www.pathname.com/fhs/을 보면 다음과 같이 링크를 걸라고 합니다.
/usr/bin/X11 -> /usr/X11R6/bin
/usr/lib/X11 -> /usr/X11R6/lib/X11 (? kubuntu에선 lib는 링크가 아님)
/usr/include/X11 -> /usr/X11R6/include/X11
왜 /usr/X11R6/*과 /usr/*/X11 두가지가 다 있는 것인가요?
또, 제 추측대로 XFree86과 다른 X Window System과의 filesystem에 차이가 있는 것인지요? 만약 그렇다면, 왜 XFree86이 아닌 경우에도 /usr/X11R6/* filesystem을 갖고 있는지도 궁금합니다.
그리고 kubuntu에서 /usr/X11R6/lib/X11과 /usr/lib/X11은 별개인데 그 이유도 궁금하고요. 여하튼 어떤 내용이든 도움 주시면 감사하겠습니다.
정확하게 기억은 안나지만...
혹시 틀린점 있으면 지적부탁드립니다.
X11R6 과 XFree86는 x window를 위한 서로 다른 구현으로 알고 있습니다.XFree86 구현을 담당하던 진영(?)에서 개발자 한사람이 그 진영 내부의 폐쇄적인 의사결정에 반기(?)를 들고 나와 시작한 프로젝트가 X11R6으로 알고 있습니다.R의 의미는 아마도 릴리즈버전 6.0이 아닌가 싶습니다.x window를 위해서는 둘 중 하나만 있읃 될겁니다.오래전에 관련 글을 보았기 때문에 정확하지 않을수도 있습니다.
그리고 다른 질문은 저도 잘 모르겠습니다.
봄들판에서다
봄들판에서다
우선적으로 말씀을
우선적으로 말씀을 드릴 것이 모든 시스템은 최대한 이전버전에 대한 호환성을 어느정도 유지시킨다는 것입니다.
X Windows시스템은 현재 XFree86, X.org 이 두 시스템이고 대부분의 리눅스 배포판이 X.org를 사용하고 있습니다.
두 시스템 공히 v6.8이었던 시절이 있었으며 이당시 사용하던 경로명이 /usr/X11R6/{bin,include,lib} 입니다.
ssif님이 언급하신대로 릴리즈 6이 맞습니다.
그런데 이 두 시스템들이 릴리즈 7이 되면서 고민을 한 것이
1. 이전버전의 디렉토리 명명 규칙에 따라 /usr/X11R7/* 으로 갈 것인가?
2. 파일들을 분산을 시킬 것인가?
입니다. 결국 선택한 것은 2번입니다.
처음 릴리즈7이 나왔을때는 아직 경로명을 /usr/X11R6/로 하드코딩한 프로그램들이 많았고 X Windows기본 프로그램들은 바로 변경이 가능했지만 기타 프로그램들(Ami, Hanterm 등 X에서 동작하지만 X에서 제공하지 않는 프로그램들)의 수정완료까지 기다릴 수 없으므로 하위 호환성을 유지하기 위해서 /usr/X11R6/bin을 /usr/bin으로 /usr/X11R6/lib를 /usr/lib/X11로 심볼릭 링크를 걸게 하였던 것입니다.
더이상 그 경로를 접근하는 프로그램이 없다라는 것이 확인되면 /usr/X11R6/{bin, include, lib} 심볼릭 링크는 삭제해도 됩니다.
대단히 감사합니다.
이틀동안 온갖 검색사이트와 리눅스 사이트를 다 뒤졌는데, 이렇게 명쾌한 답은 못봤습니다.
대단히 감사합니다. 제게는 정말 금은보화같은 답이네요.
ssif님께도 진심으로 감사하고요. 두분 모두 올 여름 시원하게 지내시길 바랍니다.
http://www.pathname.com/fhs/의 글에서는
답글을 보기 전에 본 http://www.pathname.com/fhs/의 글에서는 거꾸로 다음과 같이 되어 있어 혼란스러웠습니다 :
To simplify matters and make XFree86 more compatible with the X Window System on other systems, the
following symbolic links must be present if /usr/X11R6 exists:
/usr/bin/X11 -> /usr/X11R6/bin
/usr/lib/X11 -> /usr/X11R6/lib/X11
/usr/include/X11 -> /usr/X11R6/include/X11
...
/usr/bin/X11 must be a symlink to /usr/X11R6/bin if the latter exists.
...
The symbolic link /usr/include/X11 must link to /usr/X11R6/include/X11 if the latter exists.
...
If /lib/X11 exists, /usr/lib/X11 must be a symbolic link to /lib/X11, or to whatever /lib/X11 is a
symbolic link to. 5
지금보니 이것은 거꾸로 XFree86 기반의 시스템에서 다른 X Window System에 호환성을 제공하기 위해 그렇게 링크를 만들라는 말이었네요. 맨 위의 영문의 의미가 그것이었군요... 기반지식이 없으니 봐도 무슨 말인지 몰랐었네요;;;
답글 주신 분들 거듭 감사합니다.
댓글 달기