ソースコードからインストールされたソフトウェアを直接更新できますか


14

Ubuntuを使い始めてから1年近く経ちますが、ソースからソフトウェアをインストールしようとはしていません。実際にそうする必要があるとは思いませんでした。しかし、現在、リポジトリのリリース候補段階にあるソフトウェアに取り組んでいますが、最新の安定バージョンのソースコードはソフトウェアのホームページで入手できます。

ソフトウェアに多くの依存関係がある場合、ソースコードからのインストールは難しい場合があることを学びました。しかし、私がそれに取り組むならば、私は最新バージョンに満足することができます。しかし、そのようなソフトウェアが自動的にそれ自体を更新できるのか、またはパッケージを更新するためにいくつかのスクリプトを実行する必要があるのか​​疑問に思っています。さらに悪いことに、各更新プログラムを最初から再インストールする必要がありますか?

また、上記以外のソースからインストールする特定の利点があるかどうかを知りたいです。


回答:


10

ソフトウェアの依存関係はめったに変化しないことに注意してください。一度ソフトウェアを正常にコンパイルした場合、後続のバージョン簡単にコンパイルできます-すべての依存関係すでに満たされているはずです。

ソースからコンパイルした場合、ディストリビューションがそのソフトウェアをリポジトリに含めるのを待つか、開発者のPPAが更新されるまで待機しない限り.deb、更新に使用できるパッケージはありません。

簡単に言えば、誰かがまずそれをコンパイルしてdebにする必要があります。古いバージョンをコンパイルしても自動的に更新することはできませんが、それでも「download-configure-compile-install」プロセス全体を実行する必要があります。

ただし、同じバージョンを複数のコンピューターにインストールする場合は、コンパイル済みバージョンを.deb(または同様の)パッケージとしてパッケージ化し、それらのコンピューターに配布することをお勧めします。適切に行われた場合、依存関係は自動的に取り込まれます。

ソースからインストールする利点に関して、私が考えることができるのは次の2つだけです。

  • コードの最新リビジョンにアクセスし、安定バージョンまたは最新バージョン(通常、ナイトリービルド、最新リビジョンなどと呼ばれます)を選択できます。
  • Ubuntu / other-distributionは、ソフトウェアをリポジトリに含めたくない場合があります。その場合、開発者またはコミュニティから提供されたソースコードまたはパッケージにこだわっています。つまり、ソースを使用する以外に選択肢はありません。

4
1台のコンピューターで使用するために自分で何かをコンパイルした場合でも、インストールされたソフトウェアの概要を1か所にまとめ、アンインストールまたはアップグレードを自分でも簡単に行えるようにするため、.debパッケージを自分で作成することは常に役立ちます。
JanC

4

この投稿によると、ソースをコンパイルした後に.debパッケージを生成できます。次に、「make install」の代わりに、.debパッケージからインストールできます。パッケージは更新を追跡するパッケージマネージャーによって管理されるため、更新が簡単になります(リポジトリにある場合)。

ソースからパッケージ「some-package」を構築し、依存関係がある場合、「apt-get build-dep some-package」を試して、パッケージをコンパイルするために必要なすべての依存関係を手動で追跡せずに自動的にインストールできます依存関係を自分で。そのようにして、依存関係もパッケージマネージャーによって管理され、同様に自動的に更新される必要があります。


3

gitユーザーのための別の選択肢は言及する価値があります:

また、必要に応じて、ソースコードを更新してからプログラムを再コンパイルするためgit pullに、以前のバージョンの後に使用することもできgit cloneます。(gitファイルをさらに追跡するために使用することもできます。こちらの回答をご覧ください。)

たとえば、元々git cloneソースコードを取得するために使用した場合、

git clone git://github.com/person/programname.git

コンパイルおよびインストール後にフォルダーを保持した場合は、フォルダーにcdして実行git pullし、最新のコミットを取得できます。次に、作成および/または実行した可能性のあるビルドディレクトリを削除しmake clean(適切な場合)、ソフトウェアを再度コンパイルしてインストールしますcheckinstall。これにより、パッケージも作成されます(配布には適していません)。

ただし、プログラムの開発を支援していて、毎日毎日再コンパイルする必要がある場合は、毎回階層git pullにインストールする必要がないため、ホームフォルダーにインストールする可能性があり/usr/local/ます。

例として、私がテストしているので定期的にプログラムを再コンパイルしている場合、最新のコミットを取得しgit pullて実行した後、このビルドプログラムに移動します(この特定のプログラムの場合)。

cmake .. -DCMAKE_BUILD_TYPE=Debug -DLAYOUT=home -DPREFIX=home

次に、デバッグバージョンをコンパイルしてテストします。

ただし、毎月かそこらでgitクローンプログラムの新しいバージョンをコンパイルしたいだけで(テストもデバッグもしていなかった場合)、通常はを使用して/usr/local/階層にインストールしますcheckinstall


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.