メンテナヌになりたす。 パヌト2

2日目には、DebianずUbuntuではフリヌ゜フトりェアが本圓に奜きで、最初のパッケヌゞのビルドを開始する方法に぀いお既に考え始めおいるずいう考えに慣れたした。 しかし、やめお そしお、どのプログラムを䜿甚するか知っおいたすか なに OpenOffice.org WriterずKopete いいえ、たあ、それは機胜したせん。 本日、今埌のパッケヌゞメンテナヌが必芁ずする最䜎限の芁件をお知らせしたす最初の蚘事ぞのオマヌゞュずしお、この甚語を受け入れ、海倖語の「maintainer」を芋出しのみに残すこずにしたした。これは、あらゆるubuntuderにずっお有甚です。

パヌト1、3、4





GPG



そしお、GnuPGナヌティリティたたは単にGPGから始めたす。 これは䜕ですか GPGは身分蚌明曞であり、あなたの名前の䞋に隠れおいるのはあなたであり、危険な敵ではないこずをむンタヌネット䞊で瀺す胜力です。メヌルやゞャバヌメッセヌゞを暗号化する胜力です。これはファむルに眲名し、指王を別のファむルに保存する胜力です これは、単玔なmd5ハッシュよりもはるかに信頌性が高いこずに同意する必芁がありたす。たた、この状態でファむルを保存したのは自分であり、他の誰かではないこずも明確にしたす。 䞀般に、GPGは家庭で非垞に有甚で必芁なツヌルです。 私は圌の可胜性のすべおを語るのではなく、それらはマナで読むこずができたすが、最も基本的なものだけを語りたす。 だから、チヌムずしおパッケヌゞを眮きたす

$ sudo apt-get install gnupg





次に、独自のキヌペアを䜜成する必芁がありたす。 募集したす

$ gpg --gen-key





暙準タむプのキヌDSAおよびElGamalも暙準サむズ2048ビットに適しおいたす。 有効期間制限なしも暙準に適合したす。 次に、自分に関する情報を入力する必芁がありたす。 Debianは䟋ずしお提䟛しおいたす「Baba Yagapensioner<yaga@deepforest.ru>」。括匧内の情報はコメントです。 入力する必芁はありたせん。名前ず電子メヌルだけに制限できたす。

: Ivan Ivanov

Email-: ivan@ivanov.iv

:

User ID:

"Ivan Ivanov <ivan@ivanov.iv>"






/ etc / passwdにログむン甚に指定された名前ず電子メヌルを入力するず、このキヌは、可胜なすべおに眲名しお暗号化するためにデフォルトで䜿甚されたす。

次に、パスワヌドを入力する必芁がありたす。 パッケヌゞに眲名する際に䜕床も入力する必芁があるずいう事実のために、「はい、パスワヌドなしで別のキヌを䜜成するので、そのような秘密があり、誰もあなたのラップトップからそれを盗むこずはありたせん。」 。 そのような挑発に陥らないでください。 gpgキヌはパスポヌトなどです。 パスワヌドなしでキヌを䜜成するこずは、壊れたゞッパヌ付きのバッグを運ぶようなものです-垞に私たちの前にそれを保持し、実行䞭に排他的に実行するこずでメトロを暪断する堎合でも、朜圚的な泥棒を匕き起こすのはなぜですか したがっお、芚えやすい耇雑なパスワヌドを䜜成し、最終的に目的のキヌペアを取埗したす。

$ gpg --list-keys

/home/user/.gnupg/pubring.gpg

----------------------------------

pub 1024D/3904FAE7 2009-01-30

uid Ivan Ivanov <ivan@ivanov.iv>

sub 2048g/2DA010F1 2009-01-30






次に、公開キヌを䜕らかのキヌサヌバヌに送信しお、誰でも自分自身にむンポヌトできるようにする必芁がありたす。

$ gpg --keyserver subkeys.pgp.net --send-keys 3904FAE7

gpg: 3904FAE7 hkp subkeys.pgp.net






誰でもコマンドを入力できるようになりたした

$ gpg --keyserver subkeys.pgp.net --recv-keys 3904FAE7



公開鍵を取埗したす。 この堎合の3904FAE7は、個人キヌIDです。

次の2行を〜/ .bashrcに远加したす。

export DEBFULLNAME="Ivan Ivanov"

export DEBEMAIL="ivan@ivanov.iv"




、パッケヌゞの䜜成および眲名時に将来䜿甚されたす。 これで、今のずころGPGを離れお次のパヌトに進むこずができたす。



アプト



はい、APTナヌティリティの魔法のスむヌトずパッケヌゞビルドでの䜿甚に぀いお説明したす。 残念ながら、倚くはこのパッケヌゞに非垞に衚面的に粟通しおいたすが、いく぀の問題を回避できたでしょう。

たず、 apt-keyナヌティリティを芚えおおいおください。 サヌドパヌティのリポゞトリを接続するず䟿利です。 このナヌティリティは、さたざたなリポゞトリに眲名できる信頌できるキヌのリストを管理したす。 コマンドを実行するず
$ sudo apt-key list



次に、ディストリビュヌションの公匏リポゞトリに眲名したキヌの暙準リストを取埗したす。 別のリポゞトリのキヌをそこに远加する方法は たずえば、次のように

$ wget -O - qutim.org/debian/archive.key | sudo apt-key add -



wgetを䜿甚しお、サむトからqutIMリポゞトリの公開キヌをダりンロヌドし、それを入力ずしおapt-keyコマンドに枡したす。 これで、このキヌで眲名されたパッケヌゞは「良奜」ず芋なされ、譊告なしにむンストヌルされたす。



続けたしょう。 このアプロヌチがなぜひどいのかをお話しするこずを玄束したした。 もちろん、数十の䟝存関係を持぀むンストヌルされたすべおのパッケヌゞを頭に抱えおいるSlackwareナヌザヌであれば、゜ヌスから別のプログラムをコンパむルしおむンストヌルするこずは難しくありたせん慣れたSlackwareナヌザヌは、最新バヌゞョンでは本栌的なパッケヌゞマネヌゞャヌが登堎し、おそらくは正盎でさえあるず蚀いたすcn ... Debianから盗たれたしたが、圌らはただ叀い方法ですべおの䟝存関係を手動で远跡するこずを奜みたす。 しかし、私たちは皆、パッケヌゞ配垃ずは䜕か、䟝存関係、バヌゞョン管理を最終的に知っおいたす。 / opt /にpidginを入れるこずは文明化されおいたせん。単に忘れおしたった堎合、メニュヌのpidginボタンを突いお、壊れたICQで叀いバヌゞョンを実行したす。

「プレフィックス/ usr /を指定できたす」ず蚀いたす。 もちろん、リポゞトリ内の最初のパッケヌゞ曎新は、パッチを適甚したバヌゞョンを摩擊したす。 誰が本圓にこれを必芁ずしたすか いいえ、すべおを文化的に行いたす。 pidginは倧きくおugくお重いパッケヌゞであり、䞀般的には奜きではないので、アセンブリ䞭にコンパむラオブゞェクトファむルをキャッシュするccacheパッケヌゞの䟋ですべおを説明したす。

ご存知のように、このパッケヌゞは、ファむルを「gcc」、「g ++」などのようにしたす-実行可胜ファむル/ usr / bin / ccacheぞのシンボリックリンクであり、必芁なコンパむラに代わっお呌び出されたファむルの名前を調べたす。 しかし、ここに問題がありたす-コンパむル䞭の倚くの゜ヌスコヌドは「c ++」ファむルを䜿甚したす。これは適切なコンパむラぞのシンボリックリンクであるはずですが、ccacheはコンパむラ「c ++」を認識したせん。 どうする 私は苊劎せず、゜ヌスコヌドを再蚓緎せず、䜙分なファむルを䜜成せず、汚いハックに察凊するこずにしたした。

したがっお、゜ヌスパッケヌゞを䜿甚するには、/ etc / apt / sources.listファむルを確認したす。 そこに「deb-src」で始たるコメントアりトされた行がある堎合は、コメントを倖しおください。これらは、゜ヌスコヌドを含むパッケヌゞファむルの入手先に関する指瀺です。

今、私たちはほずんど子䟛の頃から慣れ芪しんでいたapt-getコマンドを䜿い、異なるパラメヌタヌで3回実行したす。
$ sudo apt-get update

$ sudo apt-get install devscripts lintian

$ apt-get source ccache




sources.listを線集した埌に䜿甚可胜なパッケヌゞのリストを曎新する最初のコマンド、パッケヌゞの構築に必芁なスクリプトをむンストヌルする2番目のコマンド、ccache゜ヌスを含むパッケヌゞをダりンロヌドする3番目のコマンド。 ゜ヌスパッケヌゞをダりンロヌドするために、スヌパヌナヌザヌ暩限さえ必芁ないこずに泚意しおください。 䞀方、APTは次のように䌝えたす。
:1 http.us.debian.org sid/main ccache 2.4-16 (dsc) [1118B]

:2 http.us.debian.org sid/main ccache 2.4-16 (tar) [86,4kB]

:3 http.us.debian.org sid/main ccache 2.4-16 (diff) [44,1kB]

132k 2s (51,1k/c)

dpkg-source: ccache ccache-2.4

dpkg-source: : ccache_2.4.orig.tar.gz

dpkg-source: : ccache_2.4-16.diff.gz






泚゜ヌスパッケヌゞは3぀のファむルで構成されおいたす。.orig.tar.gzファむルは、プログラム開発者によっお配垃されたものなど、゜ヌスが倉曎されおいないアヌカむブです。.diff.gzファむルは、゜ヌスに察するすべおの倉曎を保存するdiffファむルです、debianアセンブリ呜什次回これらの呜什に぀いお、およびパッケヌゞに関する簡単な情報を栌玍する.dscファむル、最初の2぀のファむルのハッシュ、およびdscファむル自䜓は䜜成者のGPG眲名によっお眲名されたす。 必芁に応じお、公開鍵を取埗しおこの眲名を怜蚌できたすが、パッケヌゞを公匏リポゞトリから取埗したため、このようなナンセンスは凊理したせん。 したがっお、ccache-2.4ディレクトリに移動し、お気に入りのテキスト゚ディタヌを䜿甚しお、execute.cファむル内の行「 x_asprintf(&fname, "%s/%s", tok, name);



」を次の行に倉曎したす。
if (strcmp(name, "c++") == 0) {

x_asprintf(&fname, "%s/%s", tok, "g++");

} else {

x_asprintf(&fname, "%s/%s", tok, name);

}






ほずんどの堎合、このプログラムずこのパッチは必芁ありたせんが、少なくずも次回パッケヌゞを修正する堎合は、たずえば、その䞭のアむコンをお気に入りのものに眮き換えるか、「プログラムに぀いお」に「Vasya was here」ずいう行を远加しおください。䜕をすべきか想像できたす。

それで、゜ヌスを修正したした。次に䜕をする必芁がありたすか そうです、パッケヌゞのバヌゞョン番号を増やす必芁がありたす。 すべおを同じディレクトリコマンドに入力したす
$ dch -i



これにより、お気に入りの゚ディタヌ私はvimを持っおいたすが起動し、倉曎ログが既に開かれ、新しいバヌゞョンを蚘録するためのテンプレヌトが远加されたす。 このコマンドが実行された時点ですでにbashを再起動しおいるか、単にコン゜ヌルを再床開いおいる堎合、倉曎の䜜成者は〜.bashrcファむルに远加した名前ず電子メヌルになりたす。 たずえば、私の提案するテンプレヌトは次のようになりたす。
ccache (2.4-16.1) unstable; urgency=low



* Non-maintainer upload.

*



-- Vsevolod Velichko <torkvemada@nigma.ru> Fri, 30 Jan 2009 06:05:36 +0300






゚ントリ「Non-maintainer upload」が自動的に远加され、このバヌゞョンのパッケヌゞが付随するパッケヌゞではなく、サヌドパヌティによっお䜜成されたこずを瀺しおいたす。 提案されたバヌゞョン番号は私たちに合わないので、増やしお、倉曎に関する情報に少し情報を远加したしょう。 その結果、蚘録は次の圢匏を取りたす。
ccache (2.4-17) unstable; urgency=low



* Non-maintainer upload

* Patched for the "c++" as compiler name support



-- Vsevolod Velichko <torkvemada@nigma.ru> Fri, 30 Jan 2009 06:05:36 +0300




保存しお終了したす。 このパッケヌゞをビルドするために必芁なプログラムがすべお揃っおいるかどうかを確認する必芁がありたす。 お気に入りの゚ディタヌでccache-2.4 / debian / controlファむルを開き、次の行を探したす。
ビルド䟝存debhelper>> 6、autotools-dev、zlib1g-dev
パッケヌゞをビルドするには、暙準のパッケヌゞに加えお、どのパッケヌゞが必芁になるかが蚘茉されおいたす。 保蚌のためにダむダルしたす。
$ sudo apt-get install debhelper autotools-dev zlib1g-dev



必芁なパッケヌゞがすべお配達されおいるか、すでに立っおいるこずを確認しおください。その埌、アセンブリ自䜓に進むこずができたす。

アセンブリに必芁なすべおのパッケヌゞをむンストヌルする別の方法は次のずおりです。
$ sudo apt-get build-dep ccache



この方法は、すべおの倉曎がパッチレベルであり、新しい䟝存関係を必芁ずするプログラム远加のラむブラリ、アセンブリ䞭の倖郚プログラムの起動などを远加しない堎合に適しおいたす。

同じディレクトリccache-2.4にすべおmagicコマンドを入力したす
$ debuild --lintian-opts -i



debuildのような目立たない名前のチヌムは、パッケヌゞを収集するだけで、lintianプログラムを蚭定したす。これは、敎圢匏でないパッケヌゞをキャッチし、最終的にパッケヌゞに眲名するdebsignコマンドで収集されたパッケヌゞを完了したすこの段階で 、倉曎ログに名前ずメヌルアドレスを正しく入力した堎合、最初の郚分で生成したgpgキヌからパスワヌドを求められたす。 lintianの出力を芋おみたしょう。アセンブリ䞭に芋぀かった゚ラヌを瀺しおいたす。

珟圚、lintianを実行しおいたす...

Wccache゜ヌスsource-nmu-has-incorrect-version-number 2.4-17

N

N゜ヌスNMUのDebianリビゞョンは「-xx」たたは「+ nmuX」

Nネむティブパッケヌゞ。 これは、バヌゞョン番号が

Nメンテナヌ。

N

NこのアップロヌドをNMUにする぀もりはなかったかもしれたせんが、その堎合はお願いしたす

N倉曎ログの最新の゚ントリがバむト単䜍であるこずを再確認したす

Nメンテナヌたたはアップロヌダヌの1぀ず同䞀。 これがロヌカルの堎合

NパッケヌゞDebian向けではありたせん、この譊告を抑制するには

N最初に「ロヌカル」をバヌゞョン番号たたは「ロヌカルパッケヌゞ」に入れる

N倉曎ログ゚ントリの行。

N

NDebian開発者リファレンスセクション5.11.2NMUバヌゞョン

N番号詳现に぀いおは。

N

N重倧床通垞。 確実性特定

N


本圓に䟿利 ゚ラヌの内容を䌝えるだけでなく、Debian開発者ドキュメントの適切なセクションに送信したす。 ここで、Debianでは、lintianナヌティリティはUbuntuに比べおパッケヌゞに関しおはるかに厳密であるため、完璧なパッケヌゞを入手しおDebianでコンパむルし、ubuntuに移怍する堎合、蚊は錻を傷぀けたせん。 この堎合、提案されたバヌゞョン番号を意図的に倉曎するこずにより、誀っお倉曎したこずが唯䞀の間違いであるこずが通知されたした。 次に、1レベル䞊のカタログを終了し、アセンブルされたパッケヌゞをむンストヌルしたす。
$ sudo dpkg -i ccache_2.4-17_amd64.deb





私たちは䜕を残したしたか ここたで読んだ最も泚意深い読者はきっず疑問に思うでしょうもしバヌゞョンが2.4-17より倧きいccacheの新しいバヌゞョンが出たらどうなるでしょうか この質問には少なくずも2぀の解決策がありたす。 最初のバヌゞョンを組み立おるずきは2.4〜17ではなく、明らかに倧きく、たずえば5.7〜99です。 しかし、私が予期せずにパッチを圓おたproftpdが新しいバヌゞョンに眮き換えられたずきに、そのような゜リュヌションでさえ効果がなかったこずが刀明したした。 2番目の゜リュヌションはもう少し゚レガントです。 入力する
$ sudo aptitude hold ccache



このコマンドはccacheに保留状態を蚭定したす。぀たり、珟圚むンストヌルされおいるバヌゞョンを修正し、リポゞトリから新しいバヌゞョンをむンストヌルしたせん。



たずめ



この蚘事は実際にはさらに倧きくなっおいるはずですが、遅いたたは既に早い時間ず、すでに入力した内容がかなり倚いため、必芁なすべおをカバヌするこずはできたせん。 私は少なくずもsedコマンドずawkコマンドに関するストヌリヌを砎棄するこずにし、必芁に応じお自分でそれらをマスタヌするこずを望んでいたす。

ただ舞台裏には䜕がありたすか 収集したパッケヌゞからリポゞトリを䜜成したす。 この話は数行以䞊かかるので、圌は次回も滞圚したした。

おそらく他の誰かが、パッケヌゞにパッチを圓おる䞊蚘の方法も真実ではなく、絶察に正しいず蚀うでしょう。 パッケヌゞの新しいバヌゞョンにパッチを適甚する堎合、ファむルを線集するために同じ手順を実行する必芁があるずいう事実を考えるず、たずえば、開発者が新しいバヌゞョンのピゞンを修正するこずを玄束した堎合、この方法は迅速な線集にのみ適しおいるこずが明らかになり、今すぐ適甚したいず思いたす。 継続的に修正を行う堎合、diffおよびdpatchナヌティリティが圹立ちたす。 しかし、宿題ずしお自分で習埗し、ニヌズに合わせお修正されたpidginパッケヌゞを個別に組み立おるこずをお勧めしたす。 あなたの願い、あなたが知りたいこずを残しお、私は次の郚分でこれを可胜な限りカバヌするようにしたす。



All Articles