centos7에 jansson 2.11-devel 이상을 설치하는 방법은 무엇입니까?

centos7에 jansson 2.11-devel 이상을 설치하는 방법은 무엇입니까?
 OS: CentOS Linux 7 (Core) x86_64 
 Host: VirtualBox 1.2 
 Kernel: 3.10.0-1127.8.2.el7.x86_64 
 Packages: 638 (rpm) 
 Shell: bash 4.2.46  
 Terminal: /dev/pts/0 
 CPU: Intel i5-4200U (1) @ 2.294GHz 
 Memory: 217MiB / 1813MiB 

필수 소프트웨어를 설치하고 싶습니다(별표)

configure: *** Asterisk requires libjansson >= 2.11 and no system copy was found.
configure: *** Please install the 'libjansson' development package

시스템을 확인해 보니 이전 버전이 있는 것으로 나타났습니다.

#rpm -qa | grep jansson
 jansson-2.10-1.el7.x86_64
 jansson-devel-2.10-1.el7.x86_64

Jansson을 업그레이드하려고 세입자와 시간을 보냈지만 그럴 수 없었습니다.

  1. 소스 코드에서 컴파일

    나는 이 단계를 따른다협회. 설치가 성공했다고 알려주는데도 말이죠. 존재하는지 확인하는 방법을 모르겠습니다. ( #rpm -qa | grep jansson사용해도 새로운 내용이 표시되지 않습니다.) 또한 개발 패키지를 원하는데 위 튜토리얼에 포함되어 있는지 모르겠습니다. 포함되어 있지 않은 경우 어떻게 얻을 수 있나요?

1.여기서 본 epel 저장소에서 설치를 시도했습니다.협회에펠의 복용량은 얼마입니까?

  1. rpm 패키지를 다운로드하여 설치합니다(아래 참조). 여기에 이미지 설명을 입력하세요.

    sudo rpm -i jansson-devel-2.11-2.2.x86_64.rpm warning: jansson-devel-2.11-2.2.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID e55f048d: NOKEY error: Failed dependencies: jansson(x86-64) = 2.11-2.2 is needed by jansson-devel-2.11-2.2.x86_64

    pkg와 동일한 종속성을 설치하려는 이유를 이해할 수 없습니다.

제 질문을 요약하자면,

  1. centos7에 jansson 2.11-devel 이상을 설치하는 방법은 무엇입니까?
  2. 소스에서 lib를 컴파일할 때 성공적으로 컴파일되었는지 어떻게 확인합니까?
  3. 종속성이 설치하려는 패키지와 이름이 같은 이유를 이해할 수 없습니다.

답변1

시도한 두 가지 방법 모두 효과가 있을 것입니다. 패키지 관리자( )를 사용하거나 패키지 종속성에 대한 추가 검사를 yum직접 rpm수행하는 경우 시스템의 다른 항목이 업데이트하려는 패키지에 따라 달라지는 경우 유용할 수 있습니다.

소스에서 설치

컴파일이 완료되면 명령의 종료 상태가 0이 되어야 합니다. 다음을 수행하여 이를 확인할 수 있습니다.

make
echo $?

마지막 명령 실행의 종료 상태를 인쇄합니다( make이 경우). 0이면 컴파일이 성공한 것입니다. 이 make방법을 사용하기로 선택한 경우 make install라이브러리와 개발 헤더 파일을 모두 설치해야 합니다.

소스에서 컴파일하고 설치하는 경우 rpm패키지가 설치되었는지 확인하는 것은 도움이 되지 않습니다(RPM을 수동으로 빌드한 다음 설치하지 않는 한). 왜냐하면 RPM DB는 여전히 전달된 내용 rpm(또는 전달되지 않은 내용 yum)만 알고 있기 때문입니다.

편집 1

소스 설치 방법은 에 항목을 설치하므로 구성 스크립트에 이를 찾아야 하는 위치를 /usr/local알려주어야 합니다 .asteriskjansson

대상 디렉토리( /usr/local기본값) 를 변경하려면 --prefix=DIR매개변수를 사용하십시오 ./configure. ./configure --help가능한 모든 구성 옵션 목록은 참고자료를 참조하세요 .

로컬 RPM 파일 설치

패키지 이름은 그렇지 않습니다.정확히같은. 해당 패키지만 설치하려고 하는데 devel기본 패키지에 따라 다르다는 메시지가 표시됩니다. RPM( jansson-2.11-2.2.x86_64.rpmjansson-devel-2.11-2.2.x86_64.rpm)을 수동으로 설치합니다.~해야 한다보고한 오류를 수정합니다. 그러나 jansson-2.11-2.2.x86_64.rpm이런 방식으로 설치하면 종속성이 충족되지 않거나 손상될 수도 있습니다. 이 방식으로 설치하면 시스템의 다른 패키지에 jansson-2.10설치된 버전을 교체할 경우 손상될 종속성이 있는지도 알 수 있다는 이점이 있습니다 . 이를 사용하여 RPM을 설치하고 종속성을 찾도록 할 수도 있습니다 yum(해결 가능한 경우).

yum install jansson-2.11-2.2.x86_64.rpm jansson-devel-2.11-2.2.x86_64.rpm

편집 2

이는 두 개의 RPM 파일을 성공적으로 찾아 로컬에 저장했다고 가정합니다. 이러한 파일이 없고 해당 파일을 제공하는 저장소를 구성하지 않은 경우 소스에서 설치한 경로를 따라야 합니다.

답변2

건물의 특정 요구 사항을 타겟팅합니다(예:엮다) CentOS 7의 별표 16에는 다음과 같은 불일치가 있습니다.

이 문제를 해결하는 간단한 방법은 다음을 사용하는 것입니다.묶여Asterisk 소스에 포함된 libjansson 라이브러리에는 다음 명령이 있습니다.

./configure --with-jansson-bundled

이런 방식으로 libjansson용 RPM 패키지를 설치할 필요가 없습니다.

나는 다음 사항을 강조하지만 확인하지는 않았습니다.

  • 18 또는 20과 같은 최신 Asterisk 버전에도 동일하게 적용됩니다.
  • 16.04와 같은 이전 Ubuntu 버전에도 동일하게 적용됩니다.

Jansson 라이브러리의 번들 버전은 다음과 같습니다.다양한 Asterisk 버전이 출시되면 정기적으로 업데이트됩니다..

관련 정보