Linuxのソースからビルド - インストールされたパッケージがめちゃくちゃになる

Linuxのソースからビルド - インストールされたパッケージがめちゃくちゃになる

Linuxのソースコードからアプリケーションをビルドするたびに、オペレーティングシステム(ubuntu)に依存関係ライブラリをインストールする必要があります。

一般的なシナリオ:

./configure の起動中にライブラリの欠落に関するエラーが発生しました。 xyz sudo apt-get install libxyz-dev ステップ 1 に進みます。最後に、オペレーティングシステムが混乱して依存関係の問題が発生しました。たとえば、

次のパッケージには満たされていない依存関係があります。

 librsvg2-dev : Depends: libglib2.0-dev (>= 2.12.0) but it is not going to be installed
                Depends: libgdk-pixbuf2.0-dev (>= 2.21.6) but it is not going to be installed
                Depends: libcairo2-dev (>= 1.2.0) but it is not going to be installed
                Depends: libgtk2.0-dev (>= 2.21.5) but it is not going to be  installed

今何をしているのか、常に自分に聞いてください。 Ubuntuでより高いバージョンのライブラリをインストールすることを強制する必要がありますか?

私の質問は次のとおりです。

おそらく、Linux(Ubuntu)のソースからソフトウェアをビルドする別の方法があります。分離するいくつかの方法。私のオペレーティングシステムに統合されていませんか?私はJavaの世界から来て、そこでアプリケーションを構築しています! =システムのすべての依存関係をインストールします。どんな提案がありますか?ベストプラクティス?

ベストアンサー1

ここには2つ以上の質問があります。最も重要なのは処理方法だと思います。「しかし、インストールされません。」 これに対する答えはありませんが、ある時点で欲求不満を感じて何かを強制的に設置したため、このようなことが発生した場合は、速度を遅くして注意を払う方法を学ばなければならないと言えます。詳細。単に「私は台無しになった」と言うことは多くのことを意味しません。

私は10年以上にわたってLinuxでソースを構築してきましたが、ディストリビューションのパッケージマネージャに問題はほとんどありません。一部のソースパッケージャは、依存関係を正しく表示しないか.configure正しく実行しないため、大きな問題になる可能性がありますが、展開バイナリに「不足している依存関係」の問題は発生しないでください。ディストリビューションのインストーラ。

たとえば、

librsvg2-dev : Depends: libglib2.0-dev (>= 2.12.0) 

2.12は非常に古いバージョンです。オンラインでバージョン履歴が見つかりませんが、約10年ほどになったようです。これより古い glib を使用する Ubuntu バージョンは使用できません。そのため、パッケージ管理に問題があります。

これは、ソースコードのビルドプロセスとほとんど関係がありません。

私はJavaの世界から来ました...

これがC/C++の世界です。 Javaはよりモノリシックで独立しているため、いくつかの作業が簡単になりますが、いくつかのトレードオフがあります。 C / C ++にはそれ自体がいくつかの利点があることを覚えておいてください。

おすすめ記事