Midnight Commanderプロジェクトのアセンブリ環境

継続



Linuxに精通している人はほとんどいません。* bsdはMidnight Commanderについて知らない。 誰もが最初にそれを使用したと言っても、私は誤解していません。 さらに、多くのプラットフォームで解決できるタスクに最適なツールです。 最近、gnome.orgの傘下で以前に開発されたプロジェクトは、第二の人生を迎えました。 新しいプロジェクトサイトは 、開発のペースに満足しています。 ここでは、ディストリビューションのパッケージの現在のバージョンのリンピングをサポートしています。



Debianで利用できる最後のものは4.7.0.9です。これは、最近リリースされた4.7.5.4に多くの利点があるという事実にもかかわらずです。 このプロジェクトはRedHatベースのシステムにバイナリアセンブリを提供し、Debian / Ubuntuのバイナリアセンブリをサポートしませんでした。 自動化されたビルド環境を実行して、このギャップを埋めることにしました。



アセンブリ環境の準備と起動のプロセスでは、いくつかの操作を自動化する必要がありました。

  1. GITプロジェクトMidnight Commanderからのパッケージのアセンブリ。
  2. 新しいリリースの可用性を確認します。
  3. ローカルリポジトリの更新。
  4. サーバーリポジトリの更新。
GITからパッケージをビルドする


アセンブリ環境の基本機能に含まれています。 実際、それらをテストする目的で、最新の変更のパッケージにアセンブリするためにすべてが開始されました。 起動時に、最後に成功したパッケージビルド以降にリポジトリに変更があったかどうかを確認します。 それらが存在しない場合、アセンブリは停止します。



変更が見つかった場合、テストを実行して、コンパイルとインストールを正しく実行できるかどうかを確認します。 これを行うには:



./autogen.sh ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/mc make dist make make install DESTDIR=/tmp/mc
      
      





前の手順がエラーなしで完了した場合、ソースパッケージが開始されます。 「make dist」を実行すると、mc- <version> .tar.gzという形式のアーカイブが作成されます。これは、mc_ <version>〜git <YYYYMMDD> .orig.tar.gzという形式にさらに縮小されます。 次に、結果のアーカイブが解凍され、debian固有のパーツがアーカイブに追加され、パッケージバージョンがインクリメントされ、ビルドプロセスが開始されます。



パッケージのビルドが成功すると、Debianポリシーコンプライアンスチェックが開始されます。 最初に、lintianでパッケージがチェックされ(出力は迅速なエラー分析のために別のファイルに保存されます)、次にpiupartsでチェックされます。 パッケージがチェックに合格すると、ターゲットプラットフォームのアセンブリが開始されます。

最小限の環境でのアセンブリを保証するために、pbuilderを介してアセンブリが行われます。



ローカルリポジトリの更新


Apt-ftparchiveは、ローカルリポジトリの管理に使用されます。 アップグレード手順を開始した後、ビルド環境から最新のビルドバージョンが取得されます。 サービス情報が更新され、リリースファイルが署名されます。 自動モードでファイルに署名するには、既存のサブキーを生成してgpg-agentに委任する必要がありました。



これにより、パッケージの署名に使用されるキーリークの問題が解決されます。失効キーを作成して、サーバー上のメインキーを更新できます。 ただし、ビルド環境サーバーにはプライマリシークレットキーは存在しません。



サーバーリポジトリの更新


変更をローカルリポジトリにアップロードするために、サーバーでrsyncが使用されました。 rsync sshのパスワードなしでキーを作成しませんでしたが、ssh-agentからアクセスできるようにしました。 必要に応じて、これにより、1つのコマンドでキーをロックできます。



新しいリリースの可用性の確認


新しい安定バージョンのリリースに遅れないように、uscanを設定しました。--reportスイッチで起動すると、XXX-preY形式のバージョンをスキップしながら、 www.midnight-commander.org / downloadで新しいバージョンの可用性をチェックします。 uscanから肯定的な応答があった場合、リリースビルドが開始され、最終的にリポジトリのメインブランチで終了します。



最後に


安定バージョンのAPT設定:



 deb http://www.tataranovich.com/debian lenny main
 deb http://www.tataranovich.com/debian squeeze main
 deb http://www.tataranovich.com/debian maverick main
 deb http://www.tataranovich.com/debian natty main


ナイトリービルドのAPT設定:



 deb http://www.tataranovich.com/debian lenny nightly
 deb http://www.tataranovich.com/debian squeeze nightly
 deb http://www.tataranovich.com/debian maverick nightly
 deb http://www.tataranovich.com/debian natty nightly


ナイトリービルドのバージョンが安定版リリースに置き換わらないように、/ etc / apt / preferencesに登録する必要があります



 パッケージ:*
ピン:リリースc =夜間
ピン:origin www.tataranovich.com
ピンの優先順位:-1 




UPD1: APTがキーを検証できないことを誓うのを防ぐために、リポジトリを使用する前に公開キーをインポートする必要があります(同時に、パッケージの署名に使用するサブキーが付属します)。 たとえば、次のように:

 gpg --keyserver pgp.mit.edu --recv-keys 0x2EE7EF82 gpg --export 0x2EE7EF82 | sudo apt-key add -
      
      





または

 wget -q -O- http://www.tataranovich.com/tataranovich.asc | sudo apt-key add -
      
      






All Articles