지금까지는 표준 Fedora 16 핵심 개발 구성 요소에서 벗어날 필요가 없었습니다. 나는 창조해야 한다지저분한 MX 프로젝트, 그러나 이 라이브러리에는 glib-2.0.32가 필요합니다. 또한 glib-2에는 libffi-3.0.11이 필요합니다.
소스 코드를 다운로드하고 이러한 라이브러리를 구축할 수 있지만 이를 설치하면 시스템의 나머지 부분이 손상될까 걱정됩니다.
이것지저분한 MX 프로젝트autotools를 사용하고 glib-2 버전을 찾으십시오.
문제는 다음과 같습니다
새 구성요소를 구축하고 설치했는데 문제가 발생한 경우 yum 또는 이와 유사한 것을 사용하여 복구할 수 있습니까?
자동화된 도구가 다른 디렉토리에 설치된 헤더를 찾도록 하는 방법이 있습니까?
답변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, 이것에 대해 잘 모르겠습니다)이 있습니다. 대부분의 경우 people/IDE에는 현재 설치된 라이브러리 버전만 종속성으로 포함되지만 최신 버전에서는 실제로 필요하지 않습니다.
필요한 버전을 해당 버전으로 수정하고 패키지를 빌드해 볼 수 있습니다.
자동화 도구에 대체 경로를 검색하도록 직접 요청할 수는 없지만 IIRC 자동화 도구는 pkg-config를 사용하여 패키지 설치 세부 정보를 확인합니다(man pkg-config). 환경 변수 PKG_CONFIG_PATH를 통해 pkg-config에 다른 디렉터리를 찾도록 지시할 수 있습니다. 그러나 pkg-config 경로는 업데이트된 라이브러리를 실제로 설치한 경우에만 작동합니다. 하지만 *.pc 파일을 편집하여 clutter-mx가 이러한 라이브러리를 정적으로 링크하도록 할 수 있다고 생각합니다.
두 가지 버전의 라이브러리를 설치하고 때로는 한 버전을 사용하고 때로는 다른 버전을 사용하는 경우 문제가 발생할 수 있습니다. 실제로 거기에 있는 rpm 파일을 교체하면 문제가 발생합니다.
내 제안은 빌드 종속성을 수정하거나 필요한 경우 최신 버전의 라이브러리 XY가 필요한 이유를 결정하고 최신 버전이 필요하지 않도록 clutter-mx 소스를 수정하고 현재 버전을 사용하는 것입니다. 두 번째로 좋은 제안은 필요한 라이브러리의 배포 패키지를 가져오거나 빌드하고 설치하는 것입니다. 배포(예: 패키지 관리자) 설정의 세계 밖에 있으면 안 됩니다. 거기에는 사악한 세력이 있습니다. :-)