私はDebian 7がインストールされているコンピュータを持っています(例えば、システムが古いことを知っていますが、今は最新バージョンにアップグレードすることはできません)。このリリースのリポジトリには mutt バージョン 1.5.21 がありますが、このバージョンの mutt で導入された OAuth2 サポートがまもなく必要になるため、 mutt が少なくとも 2.0.7 であることを願っています (Gmail では IMAP を使用したパスワード専用ログインをキャンセルしています)。 )。
私はDebian 7にmutt> = 2.0.7用に事前に構築されたバックポートがないと仮定します(少なくとも何も見つかりませんでした。存在する場合は指摘してください)。したがって、ソースからコンパイルする必要があります。しかし、上流のソースコードでDebian関連の変更を保存したいと思います。最新のDebianバージョンのソースRPMをインポートし、私のシステムでコンパイルできますか?それともこれはうまくいきませんか?
ベストアンサー1
ソースからdebパッケージを構築するのは比較的簡単ですが(RPMではなくDEBソースが必要です)、ライブラリの依存関係に注意する必要があります。新しいmuttには、以前のDebianインストールでは利用できなかったライブラリのバージョンが必要な場合があります。
次のパッケージページでパッケージ要件を確認してください。https://tracker.debian.org/pkg/mutt。バージョン管理リンクを参照してください。 「ボックス」シンボリックリンク制御ファイルはビルドの依存関係を一覧表示します。
最新バージョン2.2.4-1に必要
Build-Depends: debhelper-compat (= 12),
docbook-xml,
docbook-xsl,
gawk,
gettext,
libgnutls28-dev,
libgpgme11-dev,
libidn2-dev,
libkrb5-dev,
libncurses5-dev,
libncursesw5-dev,
libgsasl-dev,
libtokyocabinet-dev,
pkg-config,
w3m,
xsltproc,
zlib1g-dev
これらのパッケージ名の一部にはバージョン番号が含まれています。 Debian 7で動作しますか?そうでなければ、ビルド依存関係チェーンに沿って繰り返し繰り返すことは悪夢になり、おそらくそれほど価値がないでしょう。 Debian 用にパッケージ化された次の古いバージョンは 2.0.5 ですが、これは要件には十分ではありません。
Debian 7に必要なライブラリ(libgnutls28-dev、libgpgme11-devなど)がある場合、次の手順はorig tarファイル(アップストリームソースtarball)、debian .dscファイル、debian diffファイル(.debian.tar.xz)、両方パッケージページです。で利用可能https://packages.debian.org/unstable/mutt。
この3つのファイル(チェックサムの場合はorig.tar.gz.ascも可能)をダウンロードしたら、次のように解凍します。
dpkg-source -x mutt_2.2.4-1.dsc
(梱包dpkg-source
状態dpkg-dev
)
次に、ソースディレクトリ(mutt-2.2.4)にcdします。すべてのビルド依存関係が正しい場合は、実行するだけです。
dpkg-buildpackage
.deb バイナリは親ディレクトリに作成され、手動でインストールできます。
sudo dpkg -i mutt_2.2.4*.deb
依存関係にリストされている必要なライブラリのバージョンを構築する際に問題がある可能性があります。私はこれがDebian 7で動作することを期待していません(完全なライブラリチェーンを再構築せずに努力する価値はないと思います)。
Build-Depends: debhelper-compat (= 12)
それ以外にも、扱いやすい問題に直面する可能性があります。debhelper-compat (= 12)
数字のみを含むファイルを作成して作成しますdebhelper (>= 9~)
。debian/compat
9
良い測定を行うには、独自のバージョン番号でローカルビルドにタグを付けるために独自のdebian / changelogエントリを作成する必要があります。dch
(パッケージdebchange
から)を使用できます。devscripts