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をアップグレードしようとするテナントと時間を過ごしましたが、それはできませんでした。
ソースコードからコンパイル
私はこのステップに従います協会。インストールが成功したと教えてくれるのです。存在するかどうかを確認する方法がわかりません。 (
#rpm -qa | grep jansson
使用しても新しいものは表示されません。)また、開発パッケージが欲しいのですが、上記のチュートリアルに含まれているかどうかわかりません。含まれていない場合はどうすれば入手できますか?
1.ここで、このepelリポジトリからインストールを試みました。協会エッフェルの投与量はいくらですか?
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と同じ依存関係をインストールする理由を理解できません。
私の質問をまとめると、
- centos7にjansson 2.11-devel以降をインストールする方法は?
- ソースからlibをコンパイルするときに正常にコンパイルされたことをどのように確認しますか?
- 依存関係がインストールするパッケージと同じ名前の理由を理解できません。
答え1
試した2つの方法はどちらも効果があります。パッケージマネージャ()を使用する場合、またはパッケージの依存関係の追加チェックをyum
直接rpm
実行する場合は、システム内の他の項目が更新するパッケージに依存する場合に便利です。
ソースからインストール
コンパイルが完了したら、コマンドの終了ステータスは0にする必要があります。以下を実行してこれを確認できます。
make
echo $?
最後のコマンド実行の終了ステータスを印刷します(make
この場合)。 0の場合、コンパイルは成功しました。このmake
方法を使用することを選択した場合は、make install
ライブラリと開発ヘッダーファイルの両方をインストールする必要があります。
ソースからコンパイルしてインストールする場合、パッケージがインストールされているかどうかをrpm
確認することは役に立ちません(RPMを手動でビルドしてからインストールしない限り)。なぜなら、RPM DBはまだ配信されたコンテンツrpm
(または配信されていないコンテンツyum
)だけを知っているからです。
編集1
ソースのインストール方法はエントリをインストールするため、設定スクリプトにそれを見つける必要がある場所を知らせる必要が/usr/local
あります。asterisk
jansson
ターゲットディレクトリ(
/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 には、次の不一致があります。
- アスタリスク16にはlibjanssonバージョン> = 2.11が必要です。
- CentOS 7リポジトリで利用可能libjansson-devel バージョン 2.10。
この問題を解決する簡単な方法は、次を使用することです。縛らAsteriskソースに含まれるlibjanssonライブラリには、次のコマンドがあります。
./configure --with-jansson-bundled
この方法でlibjansson用のRPMパッケージをインストールする必要はありません。
私は次のことを強調していますが、確認しませんでした。
- 18 や 20 などの最新の Asterisk バージョンにも同様に適用されます。
- 16.04のような以前のUbuntuバージョンにも同じことが当てはまります。
Janssonライブラリのバンドルバージョンは次のとおりです。さまざまなAsteriskバージョンがリリースされると、定期的に更新されます。。