ソフトウェアの依存関係の問題を解決できますか?


12

これは、コンパイルの依存関係とパッケージ管理に関する標準的な質問です。

ポート/ソフトウェアのコンパイルまたは* nixサーバーへのRPMのインストールに関して質問があります。これを行おうとすると、依存関係の欠落に関する多くのメッセージを受け取ります。

Server Faultコミュニティは助けてくれますか?

回答:


10

サーバー障害へようこそ。一般的に、このタイプの質問はここでは話題になりません。ほとんどのシステム管理者は、自分のワークステーションをいじってシステム管理者になる前に、すでにこの問題に直面していることが予想されます。ただし、Windowsのバックグラウンドから来たシステム管理者はこれに直面していなかったかもしれないので、考慮すべきいくつかの事項があります。

パッケージマネージャーを使用してサーバーにソフトウェアをインストールしてみませんか?

パッケージマネージャなどyumapt、あなたのためにこれらの依存関係を扱います。さらに、サーバー上のソフトウェアの更新を管理するためにも使用できます。* nixのほとんどのフレーバーには、特にOSがプリインストールされているVPSに、デフォルトでパッケージマネージャーがインストールされます。これに本当に慣れていない場合は、実稼働システムでこれらのいずれかを使用し、テスト環境用に最先端のRPMをコンパイルまたはインストールする冒険を省いてください。

ただし、パッケージマネージャーで使用可能なパッケージよりも新しいパッケージを使用する必要があります。

ほとんどのパッケージマネージャーは、異なるリポジトリを使用するように構成できます。必要なパッケージのバージョンを提供し、なおかつパッケージマネージャーの機能を利用できるリポジトリがあることがわかります。

必要なパッケージは、リポジトリまたはパッケージマネージャーから入手できません。

その場合、あなたはおそらく行う依存関係把握する必要があります(またはそれを吸うとソフトウェアのより安定した/一般的なバージョンを使用してください)。おそらくテスト環境で次のことを行い、何をするのかを慎重にメモする必要があります。

  • インストールするソフトウェアのドキュメントを必ずお読みください。これにはおそらく最初にインストールする必要があるものがリストされますが、そのソフトウェアに必要なものはリストされません。
  • パッケージマネージャーを使用して、必要なものをインストールします。ほとんどの場合、これら利用可能です。
  • これが完了したら、インストールしてみてください。
  • 不足している依存関係に関するメッセージがまだ表示される場合は、それらすべてのメモを取り、パッケージマネージャーを使用してできるだけ多くのインストールを再試行してください。
  • 依存関係が見つからない場合は、サブタスクと見なして再帰的に処理する必要があります(ソースtarballを見つけ、依存関係を見つけ、インストールします)。
  • これは反復的なプロセスです。

まだ問題があります!

上記のすべての手順を実行して問題が解決しない場合は、他のサーバーフォールターが喜んでお手伝いする奇妙な問題に遭遇した可能性があります。新しい質問を作成して、インストールしようとしているソフトウェアの詳細、バージョン、表示されている正確なエラーメッセージを提供します。

主要なパッケージ管理システムに関する具体的なアドバイス

RPM(RHEL / Fedoraおよびクローン)およびDEB(Debian / Ubuntuおよびクローン)パッケージ管理

  • yum whatprovides filenameは、RHELタイプシステムで特定のファイルまたはライブラリを提供するパッケージを見つけるための優れた方法です。
  • ./configure && make && make install可能な限り盲目的に使用しないでください!パッケージ管理は、多くの競合するファイルの追跡不可能なインストールに起因する厄介で維持できない混乱を防ぐために、まさにこの理由で考案されました。
  • 多くのライブラリは、バイナリ(たとえば共有オブジェクト)と開発(ヘッダー)の2つの部分に分かれています。したがって、libfoolibfoo-devel(または-dev)パッケージの両方が必要になります。
  • fpmhttps://github.com/jordansissel/fpm)を使用してtarballをきちんとしたRPMとDEBに変換することを検討してください
  • 独自のパッケージをローリングしている場合、あなたはそれらの更新、テスト、およびメンテナンスの責任者です。そのためのインフラストラクチャがない場合は、間違いなく高すぎます。

RPMのファイル名による依存関係の検索

http://rpmfind.netは、インストール手順で問題が発生しているファイルの名前を知っている場合、パッケージの名前を探すのに適した場所です。ただし、異なるディストリビューションのパッケージを一致させて混合することはお勧めしません。


ライブラリの依存関係の問題を議論するセクションを提供することは有益だと思いますが、これは解決するのが少し難しい場合があります-しかし、私はこれにあまり慣れていません-貢献したい人はいますか?
dunxd

私が強くお勧めする項目には、src RPMの詳細とカスタムローカルリポジトリの管理方法が含まれます。debまたはrpmファイルを構築することは、風変わりなパッケージ要件に対応しなければならない人のツールベルトの一部でなければなりません。
ティムブリガム

アプリケーションスタックとその落とし穴のトピックに触れるために、これを拡張する価値があるかもしれません。「最新のパッケージ」の質問は、最近のものを思い出しました。
アンドリューB

これはコミュニティWikiなので、自由に追加してください。もちろん、独自の回答を提供してください:-)
dunxd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.