web-dev-qa-db-ja.com

ソースからUbuntuパッケージを更新するにはどうすればよいですか?

Ubuntuでnetwork-manager-openconnectパッケージの更新バージョンを作成したいと思います。どうやら、最新のパッケージソースを取得する必要があります。

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head

じゃあ何?パッケージには、gitを使用して最新のアップストリームコードから自身を更新する方法があるようです。しかし、どうすればそれを実現できますか?

8
James Ward

Bzrブランチから更新されたパッケージをビルドすることは、ブランチの保守者やパッケージの一般的な動作方法によってかなり異なる傾向があります。ただし、PPAにプッシュされる、ほぼすべてのパッケージの迅速でダーティな更新に関するいくつかのガイドラインを次に示します。

ブランチを取得します。

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head

次に、それに切り替えて、変更ログを更新します。

dch -i

dch -iは、debian/changelogに新しいエントリを開き、バージョンリビジョンを1つ増やします。パッチを追加する場合はこれで問題ありませんが、アップストリームソフトウェアの新しいバージョンに更新する場合は、ダッシュ(-)の前にバージョン番号を更新する必要があります。たとえば、1.2-0ubuntu1のバージョンで、dch -iを起動すると、1.2-0ubuntu2、これはパッチ適用には適していますが、新しいバージョンが必要な場合は、1.3-0ubuntu1

パッチを適用する必要がある場合は、ここで変更を追加します。 debian /ディレクトリのみを持つブランチでは、bzr bd-doを使用できます(bzr-builddebパッケージが必要です)変更できる作業ツリーに切り替えるには、キルトまたは任意のパッチシステムを使用し、「0を終了」して変更をコピーします。

新しいアップストリームバージョンが必要な場合は、変更ログを変更したら、次のようなコマンドを実行する可能性があります。

debian/rules get-orig-source

これにより、通常、アップストリームのパブリッシャーから適切なtarballがダウンロードされ、開始できます。さらに変更が必要な場合は、上記のように「パッチ」またはdebian /ディレクトリ内の他のファイルを変更します。それ以外の場合はほぼ完了です。

bzr bd -S

bzr bdはビルドを処理します。引数なしで呼び出すと、システム上でビルドが開始されますが、-Sを指定して呼び出すと、..._ source.changesを含むソースパッケージを準備するように指示されます。 PPAにアップロードするファイル(dput ppa:<yourname>/<your your ppa> <changes file>を使用します)。


NetworkManagerパッケージの場合、少し異なります。特にopenconnectを見てみましょう:

bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect

ビルドの依存関係もすべて確認してください:Sudo get-build-deps

ブランチが取得されると、これはdebian/controlファイルを読み取り、network-manager-openconnectの構築に必要なものすべてをダウンロードしようとします。 gitも必要かもしれません。それが完了したら、get-orig-sourceを実行して、最新のスナップショットのtarballをgitから取得します。

debian/rules get-orig-source

テキストが表示され、長いバージョン番号のtarballが表示されます。これは、nm-openconnectで入手できる最新のコードです。

次に、-0ubuntu1サフィックスをそのままにして、変更ログをtarballのバージョン番号で更新する必要があります。

または、debian/changelogを特定のバージョン番号に変更してから、実行します:debian/rules get-current-source

プラグインはあまり変更されないため、上記のようにbzr bdを使用して、そこからパッケージをビルドすることができます。そうでない場合は、上記のように必要な変更を適用します。

変更を行った後はbzr commitを忘れないでください。

最初に追加するのを忘れましたが、マージ提案システムを使用することをheしないでください(マージの提案LPのブランチのページをリンクする)再作成は他の人に利益をもたらす可能性があります。通常、あなたがベースにしているブランチに対してマージすることを提案することができます(この場合はlp:〜network-manager/network-manager/openconnect-ubuntu.headなど)。

[OK]を起動パッドからコードをプルする方法について更新しました

bzrブランチlp:〜network-manager/network-manager/openconnect-ubuntu.head

この用量は、lp(launchpadホスティングサービス)からコードを引き出します。コードが置かれている場所を見つける必要があります。

男bzr
343 #type 343 manページが表示されます。

bzr branch FROM_LOCATION [TO_LOCATION]        
       If  the TO_LOCATION is omitted, the last component of the FROM_LOCATION
       will be used.  In other words, "branch ../foo/bar" will attempt to cre‐
       ate  ./bar.   If the FROM_LOCATION has no / or path separator embedded,
       the TO_LOCATION is derived from the FROM_LOCATION by stripping a  lead‐
       ing   scheme   or  drive  identifier,  if  any.  For  example,  "branch
       lp:foo-bar" will attempt to create ./foo-bar.

作業したいディレクトリに変更するか、あなたとコードを移動するディレクトリを追加してみてください。

cd/home/[ユーザー名]/[開発ディレクトリへのパス]
またはbzrブランチlp:〜network-manager/network-manager/openconnect-ubuntu.head/home/[ユーザー名]/[開発ディレクトリへのパス]
e.g bzr branch lp:〜network-manager/network-manager/openconnect-ubuntu.head/home/joe/projects/network-manger/dev

すでにこれを行っている場合は、おそらくホームディレクトリにディレクトリがあります

ls〜
./ openconnect-ubuntu.head

そのディレクトリにREADME fielがあるはずです。そこに何があるべきかを確認するには、 プロジェクトコード 、ここに READMEへのリンクがあります。 .source

READMEには、その個々のプロジェクトのビルドに関する指示が必要です。

インストールする他の便利なbzrツール

Sudo apt-get install bzr-builddeb bzr-builder bzr-Explorer quilt

Bzr-explorereを使用すると、GUIでマシン上に作成したbzrリポジトリを閲覧できます。

別の注意。 1つのコンポーネントopenconnectを構築するために、ネットワークマネージャーソース全体をプルする必要がある場合があります。多くの依存関係があり、異なるコンポーネント間にあります。

現在のopneconnectパッケージの修正を作成してから、使用するすべてのdiffツールを使用してパッチを作成する必要があります。そして、それをパッケージメンテナーに送ります。

または、新しいパッケージの修正をローカルで使用する場合は、.debパッケージファイルを作成します。

これは非常に複雑なパッケージの作成で、次のリンクを読んでください

2
nelaaro