場所の準備から始めます。
mkdir ~/build
cd ~/build
そして、それがない場合は、収集されたパッケージに署名するGPGキーを作成します。
gpg --gen-key
gpg -a --output ~/.gnupg/john_doe.gpg --export 'John Doe'
一連の質問が出されますが、その答えは直感的です。 キーを作成するときの微妙な点は1つだけです。後でパッケージを作成するときに使用するのと同じ名前を指定します。
.debのビルドに必要なパッケージをインストールします。
sudo apt-get install build-essential autoconf automake autotools-dev dh-make debhelper devscripts fakeroot xutils lintian pbuilder
次に、元のGNU Emacsコードを取得する必要があります。
bzr co --lightweight -v bzr://bzr.savannah.gnu.org/emacs/trunk emacs-24.0.92
ソースコードを受け取るディレクトリの名前
emacs-24.0.92
は、アセンブリ.debパッケージのパッケージ名:
packagename-packageversion
小文字を含むディレクトリの命名要件に従って選択する必要があることに注意してください。 トランクのプログラムのバージョン番号は、 http : //bzr.savannah.gnu.org/lh/emacs/trunk/filesの
README
参照して確認
README
。
ディレクトリをソースコードとともに、アセンブリの準備が整った状態にしましょう。 準備完了状態は、
configure
スクリプトの存在です。 実行して生成:
cd emacs-24.0.92
./autogen.sh
次に、既存のディレクトリのアーカイブコピーを作成し、それと同じレベルに配置する必要があります。
tar -czvf ../emacs-24.0.92.tgz ../emacs-24.0.92/
debianizationを開始します:
dh_make -p emacs -e john.doe@gmail.com -c gpl3 -f ../emacs-24.0.92.tgz
john.doe@gmail.comをあなたの電子メールに置き換え、質問に答えます:
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch?
「シングルバイナリ」を選択します。
その結果、パッケージのアセンブリを制御するファイルを含む
debian
ディレクトリが作成されます(常に現在のディレクトリに関連するファイルとディレクトリの名前を記述します)。 少し後で編集に進みますが、今のところ、アセンブリに必要なパッケージとしてそこに登録する必要があるものを見つけます。 これを行うには、次を実行します。
dpkg-depcheck -d ./configure
システムに構築するものがない場合:
checking for library containing tputs... no
configure: error: The required function `tputs' was not found in any library.
These libraries were tried: libncurses, libterminfo, libtermcap, libcurses.
Please try installing whichever of these libraries is most appropriate
for your system, together with its header files.
For example, a libncurses-dev(el) or similar package.
必要なものをインストールするだけです:
sudo apt-get install libncurses5-dev
必要なものを検索します(正規表現を使用できます):
apt-cache search .*libncurses.*dev
長いリストの最後にあるコマンドの出力(
dpkg-depcheck -d ./configure
)を見てみましょう。
Packages needed:
libgtk-3-dev
これは、「Build-Depends」行の
debian/control
ファイル内のリストされたパッケージに追加する必要があります。リストされたパッケージはコンマとスペースで区切ります。 このファイルの他のフィールドを見て、必要に応じて編集します。 比較するためのファイルの内容は次のとおりです。
Source: emacs
Section: editors
Priority: extra
Maintainer: John Doe <john.doe@gmail.com>
Build-Depends: debhelper (>= 8.0.0), autotools-dev, libgtk-3-dev
Standards-Version: 3.9.2
Homepage: www.gnu.org/software/emacs
Package: emacs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: GNU Emacs is an extensible, customizable text editor.
debian/control
ファイルの内容に関する詳細情報は、 http : //www.debian.org/doc/manuals/maint-guide/dreq.ru.html#controlにあります 。
configure
コマンドの出力に戻り、GNU Emacsのビルドに使用するものを見て、次の行を見つけます。
What operating system and machine description files should Emacs use?
`s/gnu-linux.h' and `m/amdx86-64.h'
What compiler should emacs be built with? gcc -std=gnu99 -g -O2
Should Emacs use the GNU version of malloc? yes
(Using Doug Lea's new malloc from the GNU C Library.)
Should Emacs use a relocating allocator for buffers? no
Should Emacs use mmap(2) for buffer allocation? no
What window system should Emacs use? x11
What toolkit should Emacs use? GTK
Where do we find X Windows header files? Standard dirs
Where do we find X Windows libraries? Standard dirs
Does Emacs use -lXaw3d? no
Does Emacs use -lXpm? yes
Does Emacs use -ljpeg? yes
Does Emacs use -ltiff? yes
Does Emacs use a gif library? yes -lgif
Does Emacs use -lpng? yes
Does Emacs use -lrsvg-2? yes
Does Emacs use imagemagick? yes
Does Emacs use -lgpm? yes
Does Emacs use -ldbus? yes
Does Emacs use -lgconf? no
Does Emacs use GSettings? yes
Does Emacs use -lselinux? yes
Does Emacs use -lgnutls? yes
Does Emacs use -lxml2? yes
Does Emacs use -lfreetype? yes
Does Emacs use -lm17n-flt? yes
Does Emacs use -lotf? yes
Does Emacs use -lxft? yes
Does Emacs use toolkit scroll bars? yes
一部のライブラリ(「no」が立っている)のサポートが必要な場合は、必要な-devパッケージをシステムに配布してください。
INSTALL
ファイルには
configure
スクリプトのオプションが記述されており、GNU Emacsビルドをさまざまな方法で設定するために使用できます。
configure
試用と
dpkg-depcheck -d ./configure --without-png
を実行していることに注意してください。たとえば、コンパイルされたGNU Emacsで作成された.debパッケージには影響しません。 .debパッケージのアセンブリ中に必要なパラメーターを
configure
スクリプトに渡すには、次の行を
debian/rules
追加します。
override_dh_auto_configure:
dh_auto_configure -- --without-png
2行目はタブ文字で始まる必要があることに注意してください(ここではパーサーがすべてを飲み込んでおり、インデントは表示されていません)。
そして今、
debian/
内容に関するいくつかの言葉。 アセンブリには
debian/{control, rules, copyright, changelog}
が
dh_make
です。これらはすべて
dh_make
を実行して生成されます。 原則として、あなたは他に何も編集することはできませんが、
debian/copyright
ファイルを整理することを提案する人々の作品に敬意を表します。 以下に例を示します。
Format: dep.debian.net/deps/dep5
Upstream-Name: emacs
Source: savannah.gnu.org/bzr/?group=emacs
Maintainer: John Doe <john.doe@gmail.com>
Files: *
Copyright: Copyright (C) 2007 Free Software Foundation, Inc. <fsf.org>
License: GPL-3.0+
Files: debian/*
Copyright: 2011 John Doe <john.doe@gmail.com>
License: GPL-3.0+
License: GPL-3.0+
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <www.gnu.org/licenses>.
.
On Debian systems, the complete text of the GNU General
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
これで、すべてを組み立てる準備ができました。 1つの問題が残っています-「チェックを行う」。
Makefile
、チェックターゲットがあり、.debビルドシステムによって起動されるようにビルドされます。 そして、準備されたリリースではなくトランクをマージしたため、テストに合格しない可能性があります。 少なくとも今は持っています。 テストをスキップするには、環境変数
DEB_BUILD_OPTIONS="nocheck"
設定する必要があります。 したがって、ビルドを開始します。
DEB_BUILD_OPTIONS="nocheck" dpkg-buildpackage -rfakeroot
テストをスキップしない場合、コマンドは次のようになります。
dpkg-buildpackage -rfakeroot
デフォルトでは、Gtk Emacsビルドはgtk3
gtk3
をサポートしており、configureは
Gtk3
と
Xft
(
Gtk3
フォント)をサポートする目に優しいGUIを構成するために必要ではありません。 すべてを正しく行った場合、パッケージは、PGPキーを生成するときに尋ねられた秘密のフレーズを尋ねることで完了します。 その後、現在のディレクトリの1レベル上に、システムにインストール可能な、組み立てられた.debパッケージが表示されます。
dpkg -i ../emacs_24.0.92-1_amd64.deb
それだけです
情報源:
www.debian.org/doc/manuals/maint-guide/index.ru.html
www.webupd8.org/2010/01/how-to-create-deb-package-ubuntu-debian.html