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

試した2つの方法はどちらも効果があります。パッケージマネージャ()を使用する場合、またはパッケージの依存関係の追加チェックを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.rpmおよびjansson-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

これは、2つのRPMファイルを正常に見つけてローカルに保存したと仮定します。これらのファイルがなく、そのファイルを提供するリポジトリを構成していない場合は、ソースからインストールしたパスに従う必要があります。

答え2

建物の特定の要件をターゲットにします(例:編む) CentOS 7 のアスタリスク 16 には、次の不一致があります。

この問題を解決する簡単な方法は、次を使用することです。縛らAsteriskソースに含まれるlibjanssonライブラリには、次のコマンドがあります。

./configure --with-jansson-bundled

この方法でlibjansson用のRPMパッケージをインストールする必要はありません。

私は次のことを強調していますが、確認しませんでした。

  • 18 や 20 などの最新の Asterisk バージョンにも同様に適用されます。
  • 16.04のような以前のUbuntuバージョンにも同じことが当てはまります。

Janssonライブラリのバンドルバージョンは次のとおりです。さまざまなAsteriskバージョンがリリースされると、定期的に更新されます。

関連情報