Arch Linux 및 선택적 종속성

Arch Linux 및 선택적 종속성

Arch Linux 시스템에 XChat을 설치했습니다. 실행할 때마다 다음과 같은 오류 메시지가 나타납니다.

Python interface loaded
Perl interface loaded
AutoLoad failed for: /usr/lib/xchat/plugins/tcl.so
libtcl8.5.so: cannot open shared object file: No such file or directory

따라서 Python 및 Perl 플러그인은 올바르게 로드되지만 Tcl 플러그인은 로드되지 않습니다. 실제로 시스템에 및 패키지가 설치되어 있지만 python2패키지는 설치되어 있지 않습니다. 설치하면 문제가 해결됩니다.perltcltcl

설치하기 전에 tcl다음을 얻습니다.

ldd /usr/lib/xchat/plugins/tcl.so | grep tcl
    libtcl8.5.so => not found

설치 후 tcl다음을 얻습니다.

ldd /usr/lib/xchat/plugins/tcl.so | grep tcl
    libtcl8.5.so => /usr/lib/libtcl8.5.so (0x00007fceba533000)

tcl이는 필수 종속성은 아니지만 xchat선택적인 종속성인 것 같습니다 .

pacman -Qi xchat
...
Optional Deps  : enchant: for spell checking support
                 tcl: for tcl plugin
                 python2: for python plugin
...

왜 그럴까요? 즉, tcl이 패키지가 기본적 으로 설치되지 않는 이유는 무엇입니까 xchat? 그렇지 않다면 xchat깨진 것이 아닌가 tcl?

나는허점2년이 넘은 일이었지만 아치 리눅스 분야에서 왜 이런 일이 일어났는지 전혀 이해하지 못했습니다. 이 버그는 오래되었지만 저는 이 배포판을 몇 달 동안 매일 실행해왔기 때문에 Arch Linux 초보자입니다.

Arch Linux 포럼이나 메일링 리스트에 질문할 수도 있지만 다른 Linux 배포판 사용자의 관점을 듣고 싶습니다. 물론 Arch Linux 사용자도 환영합니다.


편집하다.

  1. 설치하지 않고 XChat을 실행할 때 나타나는 오류 메시지는 tcl메시지가 나타나는 동일한 위치의 GUI에서 명확하게 표시됩니다.
  2. 제 질문은 다음과 같이 바꿔 말할 수도 있습니다. XChat이 분명히 스크립트 --enable-tcl나 스크립트에 전달된 동등한 것을 사용하여 구축되었음에도 불구하고 패키지 configure에 대한 종속성을 강제하지 않고 tclXChat을 설치할 수 있는 이유는 무엇입니까? 사람이 원하지 않으면 tcl그것을 사용해야 합니다 --disable-tcl.

편집하다. 하나 열었어요철사Arch Linux 포럼에 올라왔지만 만족스러운 답변을 얻지 못했습니다. 그래서 Debian과 Gentoo를 확인해 보니 이 문제는 없는 것 같습니다.

답변1

이는 주로 복잡성과 사람들이 시간을 투자하는 방법에 대한 문제입니다.

누락된 플러그인 라이브러리와 관련된 경고/오류를 표시하지 않는 XChat 바이너리 패키지를 원하는 경우 기본적으로 두 가지 옵션이 있습니다.

  • "중요한" 플러그인만 포함/구성하고 이러한 플러그인에 필요한 하드 종속성을 추가합니다.
  • 사용 가능한 모든 플러그인을 포함하고 이러한 항목에 필요한 하드 종속성을 추가합니다.

첫 번째 옵션은 기능이 거의 없는 XChat 패키지를 제공합니다. 그런 다음 xchat-perl패키지, 패키지 xchat-tcl, 패키지 가 필요합니다 xchat-gtk. 모두 유지 관리, 패치, 업그레이드 등이 필요합니다. 이를 위해서는 많은 작업이 필요합니다.

두 번째 옵션은 일반 사용자가 전혀 사용하지 않는 많은 다른 항목이 포함된 비대한 XChat 패키지를 제공합니다. Arch와 같은 배포판에는 그다지 만족스럽지 않습니다.

둘 사이의 최적점을 찾으려고 노력할 수는 있지만 완벽하게 맞는 지점을 찾지 못할 가능성이 높습니다.

Arch 개발자가 이 패키지를 사용하여 수행한 작업은 사용자에게 종속성을 설치하도록 강요하지 않고 일반적으로 사용되는 플러그인을 릴리스한 것입니다. 이것은(지금은 오류 메시지를 무시함) 실제로 사용자에게 매우 좋습니다. TCL을 원하지 않거나 필요로 하지 않는 사람들은 XChat을 얻기 위해 TCL을 설치할 필요가 없습니다. TCL과 XChat TCL 플러그인만 설치하면 작동할 것입니다.
그러니 좋은 타협이군요. 나중에 TCL을 사용하여 XChat을 스크립트하려면 TCL을 설치하기만 하면 됩니다. XChat을 업데이트하거나 다른 패키지를 설치하는 것에 대해 걱정할 필요가 없습니다.

오류 메시지는 순전히 외관상입니다. 고칠 수 있나요? 아마도.
쉽게 고칠 수 있고 TCL 설치 후 플러그인이 즉시 작동을 시작할 수 있는지 여부(추가 패키지 또는 구성 변경 없음, 역 종속성 검사...): 아직 확실하지 않습니다.
아치 개발자/유지관리자는 이 외관상의 문제를 해결하기 위해 시간을 투자해야 합니까? 이것은 논란의 여지가 있습니다. 소프트웨어 작동을 고려하면 이는 상당히 낮은 우선순위여야 합니다.

할 수 있다어떤 식으로든 문제를 해결해 볼까요? 그것이 당신에게 충분히 중요하다면 아마도 그럴 것입니다. 시도해 보세요. 이러한 플러그인과 종속성을 처리하는 더 나은 방법을 찾고, 버그나 기능 요청을 제출하거나, 해당 포럼/메일링 목록에 올라와 보세요.
오픈 소스 배포판이 마법처럼 좋아지는 것은 아닙니다. 충분히 관심이 있다면 참여해 보세요.

답변2

--enable-tcl 또는 구성 스크립트에 전달된 동등한 항목을 사용하여 구축된 XChat을 tcl 패키지에 대한 종속성을 강제하지 않고 설치할 수 있는 이유는 무엇입니까?

아치 리눅스를 사용하고 계십니다. FAQ에서 -아치가 왜 그렇게 독특한지...:

아치 포장은 최소한으로 디자인되었으며,임의로 선택할 수 있는패키지 종속성자동으로 설치하지 않음. 대신 사용자에게는 패키지 설치 중에만 해당 패키지의 존재에 대한 정보가 제공되므로 시스템이 더욱 간소화됩니다.

엑스챗패키지 세부정보:

dbus-glib
gtk2
hicolor-icon-theme libnotify
openssl
enchant(선택 사항) - 맞춤법 검사 지원
python2(선택 사항) - Python 플러그인용
티클(임의로 선택할 수 있는) - tcl 플러그인의 경우

편집: 아래 댓글에 답해 주세요.

무슨 뜻인지 잘 모르겠습니다... 선택적 종속성은 애플리케이션의 특정 기능에만 사용됩니다. 위 기능을 사용하지 않는 경우에는 이러한 종속성이 필요하지 않습니다. 선택적 종속성은 여러 가지 이유로 패키지를 하위 모듈로 분할하는 것이 물리적으로 가능하지 않을 때 자주 사용됩니다(서브모듈을 사용하려면 해당 모듈이 모두 필요하기 때문에 하위 모듈에는 비선택적 종속성만 가짐). 패키지 + 서브모듈의 예는 다음과 같습니다.엑셀.

이제 귀하가 받고 있는 특정 오류/경고 메시지와 관련하여... Matt가 자신의 게시물에 요약한 것 같은데 실제로 추가할 내용은 없습니다.

관련 정보