サーバーにインストールするほとんどの「ソフトウェア」は、最新バージョン(Java、Tomcat、MySQL-Cluster)でなければなりません。だから私は事前に構築されたDebianパッケージを(配布版で)利用できるほど幸運だったことはありません。したがって、すべてのソフトウェアはプロジェクトのWebページからダウンロードされ、ソースコードでビルドされます。
今私の質問は、私のDebianシステムにインストールする正しい方法は何ですか?
私の主な問題は、ソースから直接インストールするときにパッケージ管理(適性を使用して)に含まれないことです。 Checkinstallは実際には推奨されないようで、Equivには欠点があります。この問題を処理する唯一の正しい方法は、dh_makeとdpkg-buildpackageを使用して独自のパッケージを構築することですか?
常に最新バージョンが必要な場合はどうすればよいですか?
答え1
ソフトウェアパッケージを更新しようとするのは、すべてのオペレーティングシステムでよく見られる問題です。 Debian のリリースサイクルは近年の平均 2 年であるため、このサイクルの終わりにはこれがより緊急の問題になる可能性があります。これを軽減する1つの方法は、次のバージョンがほぼ安定しているときに安定したリリースサイクルの終わりにテストすることです。テストおよび/または不安定性についてより広範に話しているかどうかは、質問では明確ではありません。それにもかかわらず、最新バージョンがまだパッケージ化されていない可能性があるため、不安定に実行されても最新バージョンを持つことは問題になる可能性があります。 Debian 開発者/パッケージはボランティアなので、退屈したり他のことで忙しくなったりしてパッケージが中断される可能性があります。
簡単で具体的にするために、将来の計画はパッケージを安定したリリースにバックポートすることを前提としていますが、これはより一般的な場合に適用されます。したがって、安定したバージョンにない最新バージョンのソフトウェアが必要な場合は、おおよその順序で次の操作を行います。
次のパッケージを探すDebian バックポート。時にはあなたの目的に合った新しいパッケージを見つけることができます。しかし、これらのパッケージは、不安定、実験的、またはアップストリームバージョンと比較して古いことがよくあります。
テスト、不安定、または実験から直接パッケージをインストールしてみてください。安定版がインストールするバージョンと大きく異なる場合は、この方法が機能する可能性があります。システムが最新バージョンで基本パッケージをインストールまたはアップグレードしようとすると、このアプローチが悪いことがわかります。不安定なバージョンからインストールしようとすると
apt-get install packagename/unstable
最初に試してみることです。これは不安定なバージョンの追加パッケージが必要なため、安定したバージョン
packagename
では通常失敗します。これが何を意味するのかわからない場合は、行って読んでくださいman apt_preferences
。引き続き不安定な依存関係を追加して、基本パッケージをアップグレードしようとしていないことを確認してください。たとえば、libc6、X、KDE、Gnomeのアップグレード試行が開始されたらすぐに停止します。通常、パッケージは互いに密接に結合されているため、同じソースパッケージから別のパッケージをアップグレードしようとすると通常問題はありません。バイナリパッケージが依存するソースパッケージを確認するには、次の手順を実行します。apt-cache showsrc packagename
多くのものがGNU Cライブラリ(libc6)に依存していたので、これは問題になりました。最近はAPIが安定しているようで、今では通常アップグレードする必要はありません。パッケージがstableへのランタイム依存関係を満たしていてもまだ機能していない場合は、バグを報告してください。パッケージャがこれがバグではないと言うならば、彼らは間違っています。 :-)
テスト、不安定、または実験的なリリースのパッケージを直接バックポートします。
前述のように、バックポーティングはオプションですが、これらのパッケージは不安定、実験的、またはアップストリームバージョンよりも古いことがよくあります。
通常、再帰的な依存関係のビルドループ型が必要です。まず、ビルドの依存関係を取得する必要があります。
apt-get build-dep packagename
依存関係の1つが十分に新しくないために失敗した場合は、まずその依存関係をバックポートする必要があります。これは手から離れることができます。 2つ以上の再帰レベルを処理する必要がある場合は、通常、あきらめます。しかし、実際の依存関係は、指定されたほど厳密である必要はありません。以前のバージョンが機能する可能性があります。パッケージャは通常、動作するビルド(または実際にはランタイム)依存関係の最も古いバージョンを見つけることを試みません。
そのアップストリームでパッケージの可用性を確認してください。理想的にはディストリビューションと一致しますが、必要に応じて再構築できます。
Testing/Unstable/experimentalで、最新のパッケージよりも最新のソフトウェアバージョン用のパッケージを作成します。これは比較的難しいかもしれませんが、時には驚くほど実行可能です。最初に注目すべき点は、Debianにすでに存在するパッケージのアップデートバージョンをパッケージ化しようとすると、既存のパッケージをすでに使用できるという点で大きな利点を持ち始めることです。ただ
apt-get source packagename
そして、
apt-get
パッケージを含むdebianサブディレクトリを含む対応するソースコードパッケージがダウンロードされます。また、このパッケージはいくつかのバージョン管理リポジトリ(gitはDebianで人気があるようです)とstable apt(現在は0.8.10.3)が呼び出されると、これがどこにあるかを知らせることができますapt-get source
。パッケージに公開されているパッケージよりも最新バージョンのパッケージがある可能性があるため、これを確認する必要があります。例えば。$ apt-get source mercurial Reading package lists... Done Building dependency tree Reading state information... Done NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at: svn://svn.debian.org/python-apps/packages/mercurial/trunk
または簡単に使用できます
apt-cache showsrc mercurial | grep Vcs
リポジトリを一覧表示します。
パッケージがひどく古い場合は、パッケージを修正して適用された
パッチを更新する必要があるかもしれませんが、通常これはまだ良い出発点です
。 Debian は
キルトのパッケージ管理を標準化しているようですdpkg-source 3.0(キルト)形式、パッチを更新するのに役立ちます。バックポート方式の実際の事例で仕上げます。Debian パッケージ~の PGF。 pgfの最後のパッケージバージョンは2008年2.00で、その後2.10がリリースされました。の議論を参照してください。最新の安定版pgf(2.10)にアップデートしてください。、そしてその後のエラーパッチ、pgf:2.0 Debian用パッチパッケージ。 pgfのDebianパッケージングは非常に簡単であることがわかりました。 2.10 パッケージングで 1 行だけ変更すると動作するようになりました。ついにすべてと和解しました。 リンティアン苦情もありますが、これは完全にオプションです。
答え2
もちろん、独自のパッケージを作成することもできますし、そうすればうまくいくでしょう。しかし、私は使用することをお勧めしますバックポートまず、欲しいものがあれば。
バックポートはDebianによって管理され、バックポートからセキュリティ更新プログラムを受け取ることができます。
答え3
独自のパッケージを作成するのが正しいアプローチです(IMHO)。パッケージのDebianバージョンの寿命と変更によっては、パッケージの説明でソースtarballのファイル名を変更するのと同じくらい簡単で、最悪の場合でもテンプレートとして使用できます。バージョン。
答え4
常に最新バージョンが必要な場合はどうすればよいですか?
〜のようにすでに言及、バックポーティングを使用します。
Debianパッケージの小さなサブセットのみがバックポートであるため、次のようにすることをお勧めします。Debian テスト。これは、ローリングリリースと同じ意味で安定性と最近性との間の適切なバランスを提供する。
もう少し冒険心がある場合は、次のものを使用できます。Debianは不安定です。かなり安定しています。他のディストリビューションの「安定した」バージョンよりも信頼性が高いと主張する人もいます。不安定性は通常、新しいパッケージバージョンが入る場所です。彼らは通常、テストのために移動する前にテストのために約10日間そこにとどまります。
これら2つを使用しても、最新バージョンがない可能性があります。この状況を見てくださいDebian 実験版。通常、新しいパッケージが通常のアーカイブに過度に影響を与える(不安定でテストするとき)に使用されます。
実験にまだ十分な新しいソフトウェアバージョンがない場合は、次の点を確認してください。Ubuntu PPA。そこで、上記のすべてのアーカイブから欠落しているよりも新しいソフトウェアバージョンを見ました。しかし、UbuntuはDebianと100%互換性がないので注意して使用してください(ただし、ほとんどの場合問題ありません)。
上記の方法が失敗した場合は、独自のパッケージを作成してみてください。上記のように。