web-dev-qa-db-ja.com

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

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

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

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

14
Chethan S.

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

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

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

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

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

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

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

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

4
M. Alaggan

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で最新のコミットを取得し、実行してから(この特定のプログラムに対して)ビルドフォルダーにcdします。

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

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

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

3
user76204

ソースからインストールを管理するには、こちらの回答を参照してください: ソースからコンパイルされたパッケージを更新する方法?

0