지금까지는 표준 Fedora 16 핵심 개발 구성 요소에서 벗어날 필요가 없었습니다. 구축이 필요해요clutter-mx 프로젝트, 그러나 이 라이브러리에는 glib-2.0.32가 필요합니다. 이와 함께 glib-2에는 libffi-3.0.11이 필요합니다.
소스를 다운로드하고 이러한 라이브러리를 구축할 수 있지만 이를 설치하면 시스템의 나머지 부분이 손상될까 걱정됩니다.
그만큼clutter-mx 프로젝트autotools를 사용하고 glib-2 버전을 찾습니다.
질문은 다음과 같습니다
새 구성 요소를 빌드하고 설치했는데 문제가 발생한 경우 yum이나 유사한 기능을 사용하여 다시 시작할 수 있나요?
설치된 헤더를 다른 디렉토리에서 찾도록 autotools를 얻는 방법이 있습니까?
답변1
시스템 디렉터리에 최신 Gtk/Gnome 라이브러리를 설치하려고 하지 마세요. 이전 버전과의 호환성이 좋지 않아 기존 프로그램이 손상될 위험이 있습니다.
별도의 디렉터리 계층 구조에 새 라이브러리를 컴파일하고 설치합니다. ./configure --help
라이브러리를 컴파일할 때 라이브러리 및 포함 파일에 대한 경로를 지정하는 방법을 보려면 실행하세요 . 예를 들어 보면
PANGO_CFLAGS C compiler flags for PANGO, overriding pkg-config PANGO_LIBS linker flags for PANGO, overriding pkg-config
그런 다음 다음 환경 변수를 설정합니다.
export PANGO_CFLAGS='-I /path/to/my/gnome/stuff/include'
export PANGO_LIBS='-L /path/to/my/gnome/stuff/libs'
모든 것을 자신의 디렉토리에 설치하려면 --prefix=/path/to/my/gnome/stuff
에 전달하십시오 ../configure
또는 많은 라이브러리를 설치하고 다음을 포함한 모든 것을 다시 빌드해야 하는 경우 더 쉬울 것입니다.패키지 구성. pkg-config
아래에도 설치한 /path/to/my/gnome/stuff
후 설정하세요.
export PKG_CONFIG=/path/to/my/gnome/stuff/bin/pkg-config
답변2
자동 도구를 통해 종속성을 찾는 소스에는 해당 종속성이 정의된 configure.ac 파일(및/또는 Makefile.am, 확실하지 않음)이 있습니다. 대부분의 경우 사람들/IDE는 현재 설치된 라이브러리 버전을 종속성으로 두지만 실제로 최신 버전에서는 필요하지 않습니다.
필요한 버전을 해당 버전으로 수정하고 패키지를 빌드해 볼 수 있습니다.
autotools가 일부 대체 경로를 직접 찾도록 할 수는 없지만 IIRC autotools는 pkg-config를 사용하여 패키지 설치 세부 사항을 결정합니다(man pkg-config). 환경 변수 PKG_CONFIG_PATH를 사용하여 다른 디렉터리를 찾도록 pkg-config에 지시할 수 있습니다. 그러나 pkg-config 경로는 실제로 어딘가에 최신 라이브러리가 설치된 경우에만 작동합니다. 하지만 *.pc 파일을 편집하여 clutter-mx가 해당 라이브러리를 정적으로 링크하도록 할 수 있다고 생각합니다.
두 가지 버전의 라이브러리를 설치하고 때로는 하나를 사용하고 때로는 다른 버전을 사용하는 경우 문제가 발생할 수 있습니다. 실제로 rpm으로 저장된 파일을 교체하면 문제가 발생합니다.
내 조언은 빌드 종속성을 수정하거나 필요한 경우 최신 버전의 라이브러리 XY가 필요한 이유를 결정하고 최신 버전이 필요하지 않고 현재 버전에서 작동하도록 clutter-mx 소스를 수정하는 것입니다. 두 번째로 좋은 조언은 필요한 라이브러리 배포용 패키지를 가져오거나 빌드하고 설치하라는 것입니다. 배포판, 즉 패키지 관리자가 설정한 세계에서 벗어나면 안 됩니다. 거기에는 사악한 세력이 있습니다. :-)