[완료] /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은 별개인데 그 이유도 궁금하고요. 여하튼 어떤 내용이든 도움 주시면 감사하겠습니다.

ssif의 이미지

혹시 틀린점 있으면 지적부탁드립니다.

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/의 글에서는 거꾸로 다음과 같이 되어 있어 혼란스러웠습니다 :

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에 호환성을 제공하기 위해 그렇게 링크를 만들라는 말이었네요. 맨 위의 영문의 의미가 그것이었군요... 기반지식이 없으니 봐도 무슨 말인지 몰랐었네요;;;
답글 주신 분들 거듭 감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.