Create deb package how to

Create deb package how to

Π‘ΠΎΠ±ΠΈΡ€Π°Π΅ΠΌ deb-ΠΏΠ°ΠΊΠ΅Ρ‚. Π§Π°ΡΡ‚ΡŒ 1

Π’ рСпозитариях Ubuntu собрано ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. На сайтах самих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ достаточно часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ deb-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. Однако всС ΠΆΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ ПО Π½Π΅Ρ‚ Π² рСпозитариях ΠΈΠ»ΠΈ Π½Π° сайтС нСльзя ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ для Ubuntu, ΠΈΠ»ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚Π°Ρ€ΠΈΠΈ Π΅ΡΡ‚ΡŒ старая вСрсия, Π½ΠΎ ΠΎΠ½Π° вас Π½Π΅ устраиваСт Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ присутствуСт досадный Π±Π°Π³ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

НС ΡΠΏΠ΅ΡˆΠΈΡ‚Π΅ ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ исходники ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ ./configure && make && make install. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ каша ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ софта, установлСнного Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈ Ρ‡Π΅Ρ€Π΅Π· apt, ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ станСт ΠΎΡ‡Π΅Π½ΡŒ тяТСло. Π“ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ побольшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ deb-ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ apt. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΆΠ΅ apt Π½Π°Π΄ Ρ€ΡƒΡ‡Π½ΠΎΠΉ установкой ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹.

Допустим ΠΌΡ‹ находимся Π² ситуации, ΠΊΠΎΠ³Π΄Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ вСрсии Ubuntu ΠΈΠ»ΠΈ Debian Π΅ΡΡ‚ΡŒ нСобходимая Π½Π°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π° Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΅Π΅ Π½Π΅Ρ‚.

НапримСр, Ρƒ мСня Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ установлСна Ubuntu 7.10 Gutsy ΠΈ ΠΌΠ½Π΅ хочСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Guake. Π’ рСпозиториях Gutsy Π΅Π΅ Π½Π΅Ρ‚. На сайтС deb-ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΏΠΎΠ΄ мою Π²Π΅Ρ€ΡΠΈΡŽ Ubuntu Π½Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ придСтся Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ самому.

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡΡ Π½Π° сайт packages.ubuntu.com ΠΈ ΠΈΡ‰Π΅ΠΌ Π½Π° Π½Π΅ΠΌ guake Π² рСпозитариях для всСх вСрсий Ubuntu; ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°ΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚ для Ubuntu 8.10. Π§Π΅ΠΌ большС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² вСрсиях ΡƒΠ±ΡƒΠ½Ρ‚Ρ‹, Ρ‚Π΅ΠΌ большС Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ получСния Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ бэкпортировании. Но Ρ‡Ρ‚ΠΎ ΠΆΠ΅, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ, судя ΠΏΠΎ зависимостям ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ слишком ΠΌΠ½ΠΎΠ³ΠΎ.

Для бэкпортирования ΠΈΠ»ΠΈ сборки ΠΈΠ· исходников Π½Π°ΠΌ понадобятся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹. ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ установим ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для этого. Π­Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ debhelper, dh-make, devscripts, fakeroot, build-essential, automake, gnupg, lintia. ΠžΡ‚ΠΌΠ΅Ρ‡Ρƒ Ρ‡Ρ‚ΠΎ для пакСтирования ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ софта Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ комплияторы, dev-вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΈΠ΄ΠΈΠΌΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ понадобятся.

ПослС установки софта ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Π±ΡΠΊΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ guake.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ:
konstantin@konstantin-desktop:

Backported from Interpid

guake (0.3.1-5ubuntu1) gutsy; urgency=low

* Backported from Interpid

— Konstantin Mikhaylov Thu, 18 Sep 2008 15:07:30 +1100

Building binary deb packages: a practical guide

How to ship your apps on Debian and derivatives.

In this quick tutorial I want to show you how to generate a deb package from scratch that will install a binary executable in the target system. Let’s start off with a bit of theoretical background.

Anatomy of a deb package

A deb is a standard Unix ar archive that contains your application and other utility files. The most important one is the control file, which stores the information about the deb package and the program it installs.

On the outside instead, all deb package files follow a specific naming convention:

Making the deb package

We are now ready to generate the package. Make sure you have the dpkg-deb program installed in your system: this will be used later on to generate the final archive.

1. Create the working directory

Create a temporary working directory to make your package in. Follow the same naming convention we have seen before. For example:

2. Create the internal structure

Put your program files where they should be installed to on the target system. For example, suppose you want your program to be installed to /usr/local/bin :

3. Create the control file

The control file lives inside the DEBIAN directory. Mind the uppercase: a similar directory named debian (lowecase) is used to store source code for the so-called source packages. This tutorial is about binary packages, so we don’t need it.

Let’s create the DEBIAN folder first:

And then create the empty control file:

4. Fill in the control file

Open the file previously created with your text editor of choice. The control file is just a list of data fields. For binary packages there is a minimum set of mandatory ones:

The control file may contain additional useful fields such as the section it belongs to or the dependency list. The latter is extremely important in case your program relies on external libraries to work correctly. You can fill it manually if you wish, but there are helper tools to ease the burden. I will show you how in the next few paragraphs.

5. Build the deb package

This is the last step. Invoke dpkg-deb as following:

So in our example:

Test your deb package

It’s a good idea to test your deb package once created. You can install it like any other regular deb package:

Make sure it can be also uninstalled easily. You can just remove the package:

or remove it along with the configuration files (if any):

Make sure the application has been removed correctly by issuing:

Sometimes the deb installation goes wrong

Especially when you are dealing with pre/post install or removal scripts that fail at some point. This is a typical error message by dpkg :

which prevents any progress. The trick is to move all references to your broken package somewhere safe (e.g. the /tmp directory) and then force remove it, like so:

Taking care of external dependencies

Run scripts before or after package installation and removal

Как ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ deb ΠΏΠ°ΠΊΠ΅Ρ‚: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ HowTo

БСгодня я расскаТу Π½Π° абстрактном ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ *.deb ΠΏΠ°ΠΊΠ΅Ρ‚ для Ubuntu/Debian. ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΈ ΠΈΠ· исходников здСсь Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ: осилив ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ знания, Π² дальнСйшСм ΠΏΠΎ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΡΡƒΡ‚ΡŒ ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ πŸ™‚

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ лишнСй Π²ΠΎΠ·Π½ΠΈ Β«Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽΒ»: Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π» Π² достаточно ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ, Π° Π³Π»Π°Π²Π½ΠΎΠ΅ β€” Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ структуру, ΠΈ всё дСлаСтся Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π½Π° ΠΊΠΎΠ»Π΅Π½ΠΊΠ΅, с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Ρ‹ спСциализированных ΡƒΡ‚ΠΈΠ»ΠΈΡ‚.

Π’ качСствС бонуса Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ быстрого создания собствСнного локального рСпозитория: установка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΠ· рСпозитория позволяСт автоматичСски ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ зависимости, ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅! β€” ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ всё ΠΎΠ΄Π½ΠΎΠΉ консольной ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… πŸ™‚

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² ΠΌΠΎΡ‰Π½ΡƒΡŽ систСму установки софта Π² Linux, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ сайт ΠΏΡ€ΠΎΠ³ΠΈ CheckInstall: ΠΎΠ½Π° автоматичСски создаёт deb-ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«make installΒ» πŸ˜‰ А ΠΌΡ‹ вмСстС с Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌΠΈ β€”

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

Π—Π°Ρ‡Π΅ΠΌ это всё?
Π§Ρ‚ΠΎ потрСбуСтся

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, для создания ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ρ…Π²Π°Ρ‚ΠΈΡ‚ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€ΠΎΠ² tar, gz, ar, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ лишнюю возню, ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ инструмСнтами, созданными для облСгчСния ΠΆΠΈΠ·Π½ΠΈ πŸ™‚
Π‘Ρ‚Π°Π²ΠΈΠΌ:
$ sudo apt-get install dpkg debconf debhelper lintian

Π§Ρ‚ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн Π½Π΅ΠΊΠΈΠΉ скрипт /usr/bin/super.sh. НС Π²Π°ΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ, Π³Π»Π°Π²Π½ΠΎΠ΅ β€” ΠΊΠ°ΠΊ ΠΎΠ½ появится Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ мСстС πŸ™‚

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΏΠΊΠΈ

/supersh/usr/bin # ΠΏΡƒΡ‚ΡŒ ΠΊ скрипту
cp super.sh

/supersh/usr/bin/ # ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ наш скрипт Π² Π½ΡƒΠΆΠ½ΠΎΠ΅ мСсто
Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΈΠΌΠ΅Π΅ΠΌ:
supersh/DEBIAN/
supersh/usr/
supersh/usr/bin/
supersh/usr/bin/super.sh

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°: DEBIAN/*

Как я ΡƒΠΆΠ΅ сказал, ΠΏΠ°ΠΏΠΊΠ° DEBIAN содСрТит Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ установкС. Π—Π΄Π΅ΡΡŒ я ΠΎΠΏΠΈΡˆΡƒ (с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ) ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ».
Для создания ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° достаточно ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Β«controlΒ», всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ для прикрСплСния тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (changelog, лицСнзия), Π»ΠΈΠ±ΠΎ для управлСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями установки ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Из описанных Π½ΠΈΠΆΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΠ°ΠΏΠΊΠ΅ DEBIAN/* Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅, ΠΈ заполняСм согласно инструкции πŸ™‚
Π’ нашС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ DEBIAN/control.

DEBIAN/control: Основная информация

control β€” Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ всС основныС свойства. Π€Π°ΠΉΠ» β€” тСкстовый, состоящий ΠΈΠ· ΠΏΠ°Ρ€ «Атрибут: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β». МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ: символ «#» Π² Π½Π°Ρ‡Π°Π»Π΅ строки (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² вСрсии dpkg >= 1.10.11, Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π΅ стоит :).
Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ всС поля, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ для ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ ΠΆΠΈΡ€Π½Ρ‹ΠΌ: Π±Π΅Π· Π½ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ составлСнным Π²Π΅Ρ€Π½ΠΎ.

ΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
β€” основныС β€”
Package:Имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°: [a-zA-Z0-9-] β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π°, Ρ†ΠΈΡ„Ρ€Ρ‹, ΠΈ дСфис. Имя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ установкС: apt-get install

DEBIAN/copyright: Β© / лицСнзия

ВСкст Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ. Π€Π°ΠΉΠ» Π½Π΅ обязатСлСн, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ своё авторство πŸ˜‰

DEBIAN/changelog: история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Changelog Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ dpkg для получСния Π½ΠΎΠΌΠ΅Ρ€Π° вСрсии, Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ, дистрибутива ΠΈ ваТности ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ πŸ˜‰ Π° я лишь ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
supersh (1.0-1) stable; urgency=medium

— o_O Tync Sun, 13 Dec 2009 00:11:46 +0300

DEBIAN/rules: ΠΏΡ€Π°Π²ΠΈΠ»Π° компиляции

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для управлСния компиляциСй ΠΏΠ°ΠΊΠ΅Ρ‚Π°: это ΠΊΠΎΠ³Π΄Π° Architeture: source πŸ™‚
Π‘ΠΌ. ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ

DEBIAN/conffiles: список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ содСрТат Π±ΠΎΠ»Π²Π°Π½ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π² /etc. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли ΠΊΠΎΠ½Ρ„ΠΈΠ³ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ обновляСтся, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ потСряСт свой ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³. Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ использованиСм ΠΏΠ°ΠΏΠΎΠΊ Ρ‚ΠΈΠΏΠ° Β«config.dΒ», содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² основной ΠΊΠΎΠ½Ρ„ΠΈΠ³, замСняя собой ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΠΏΡ†ΠΈΠΈ.
Π€Π°ΠΉΠ» Β«DEBIAN/conffilesΒ» позволяСт Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈΠ½Π°Ρ‡Π΅: ΠΎΠ½ содСрТит список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° строкС). Если Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих Ρ„Π°ΠΉΠ»ΠΎΠ² обновляСтся, Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅ вСрсий ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ², ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ: ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ merge.
Π‘ этой ситуациСй навСрняка сталкивался ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ линуксоид, копавшийся Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°Ρ… πŸ™‚ А Π½ΠΎΠ³ΠΈ растут ΠΎΡ‚ΡΡŽΠ΄Π°.
На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°. НапримСр:
/etc/supersh/init.conf
/etc/supersh/actions.conf

DEBIAN/dirs: список папок для создания

«Бписок Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ ΠΏΠ°ΠΏΠΊΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Π½ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ.Β» β€” гласит ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ докумСнтация. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ – здСсь ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ всС ΠΏΠ°ΠΏΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ: ΠΈ Π³Π΄Π΅ Π»Π΅ΠΆΠ°Ρ‚ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΈ, ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.
По ΠΎΠ΄Π½ΠΎΠΉ Π½Π° строкС. НапримСр:
/var/log/supersh
/var/lib/supersh
Π£Π΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… пустых ΠΏΠ°ΠΏΠΎΠΊ.

DEBIAN/menu: созданиС ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню
UPD: ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ способ добавлСния ΠΏΡƒΠ½ΠΊΡ‚Π° мСню
DEBIAN/md5sums: ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ суммы Ρ„Π°ΠΉΠ»ΠΎΠ²
DEBIAN/watch: ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ сайта, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±Ρ‹Π»Π° скачана ΠΏΡ€ΠΎΠ³Π°

Ѐункция ΠΏΠΎΠ»Π΅Π·Π½Π°, Ссли Π’Ρ‹ мэйнтСйнитС ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… дСсятков ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈ ΡƒΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° всСми обновлСниями слоТно.
Π€Π°ΠΉΠ» содСрТит инструкции для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ uscan ΠΈ uupdate. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° сайтом, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ исходники ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ качСства дистрибутива Π² Ρ†Π΅Π»ΠΎΠΌ.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
# Site Directory Pattern Version Script
ftp.obsession.se /gentoo gentoo-(.*)\.tar\.gz debian uupdate

И Π΅Ρ‰Ρ‘ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для uscan(1):
version=3
madwimax.googlecode.com/files/madwimax-(.*)\.tar\.gz

Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ нСчастно Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ простым смСртным πŸ™‚

DEBIAN/cron.d: инсталляция Π·Π°Π΄Π°Π½ΠΈΠΉ cron
DEBIAN/inid.d: init-скрипт

Π’ этот Ρ„Π°ΠΉΠ» ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ содСрТимоС init-скрипта. О написании init-скриптов Π² ΠΈΠ½Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ

Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΈΠ½Π³

ΠœΡ‹ подошли ΠΊ самому интСрСсному: Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π½ΠΈΡŽ скриптов Π² deb ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ установкой, пСрСустановкой ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, выполняя дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ простым ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ мСста. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скачиваниС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ flash-installer), ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ β€” Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… (GUI ΠΈΠ»ΠΈ ncurses) Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎΠ΄ сСбя: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, mysql ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для root.
ВсС скрипты Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root (Π° ΠΊΠ°ΠΊ ΠΆΠ΅ Π΅Ρ‰Ρ‘ :). Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ), ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ этапС находится установка. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом здСсь.

DEBIAN/(preinst|postinst|prerm|postrm): скрипты установки

exit 0

WARNING: Π±ΠΎΠ»Π²Π°Π½ΠΊΠ° ΠΏΠΎΠΊΠ° Π½Π΅ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ лишний Ρ€Π°Π·! На Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ наткнулся совсСм Π½Π΅Π΄Π°Π²Π½ΠΎ πŸ™‚

DEBIAN/templates: ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²

Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано, Π² скриптС DEBIAN/config ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ вопросы: ввСсти строку, Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ,… Π­Ρ‚ΠΈΠΌ занимаСтся Β«Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Β» bash Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ debhelper ΠΏΠ°ΠΊΠ΅Ρ‚Π° debconf, ΡƒΠΌΠ΅ΡŽΡ‰Π°Ρ ΠΊΡ€ΠΎΠΌΠ΅ этого Π΅Ρ‰Ρ‘ массу ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ. Π—Π΄Π΅ΡΡŒ ΠΈΡ… Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ πŸ™‚
Π€Π°ΠΉΠ» DEBIAN/templates содСрТит Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½ (GUI ΠΈΠ»ΠΈ ncurses). Π€Π°ΠΉΠ» содСрТит Π±Π»ΠΎΠΊΠΈ, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ пустой строкой. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ опрСдСляСт рСсурсы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅.
Π¨Π°ΠΏΠΊΠ° для всСх Ρ‚ΠΈΠΏΠΎΠ² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ² стандартная:
Template: supersh/template-name
Type: string
Default: Default-value
Description: Dialog-title
␣Dialog-text

Template β€” ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ (Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°) ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ шаблона. Если Π² скриптС Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ это имя.
Type β€” Ρ‚ΠΈΠΏ шаблона. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹: string, password, boolean, select, multiselect, text, note, error.
Default-value β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ просто ΡΠΎΠ³Π»Π°ΡΠΈΡ‚ΡŒΡΡ с Π½ΠΈΠΌ.
Description β€” ΠΊΠ°ΠΊ ΠΈ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΏΠΎΠ»Π΅ΠΉ: ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ описаниС, ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ тСкст. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ β€” это Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Β«ΠΎΠΊΠ½Π°Β», Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚ΠΎΠ΅ описаниС Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ трСбуСтся ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. РСкомСндуСтся Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слов Π²Ρ€ΠΎΠ΄Π΅ Β«Π²Π²Π΅Π΄ΠΈΡ‚Π΅Β», Π° сразу ΡΡƒΡ‚ΡŒ: Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ скрипта», Β«Π’ΠΎΡ‡ΠΊΠ° монтирования»,…

ΠžΡΠ½ΠΎΠ²Ρ‹ использования debconf ΠΈ debhelper

# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ debconf
. /usr/share/debconf/confmodule

Π‘ΠΎΠ±ΠΈΡ€Π°Π΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚! πŸ™‚

АвтоматичСская ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°

БущСствуСт ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° lintian, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки Π² Π΅Π³ΠΎ структурС. ДСлаСтся это Ρ‚Π°ΠΊ:
$ lintian supersh_1.0-1_all.deb

Установка ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ собствСнный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ собствСнный ΠΏΠ°ΠΊΠ΅Ρ‚. Когда ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ нСсколько, ΠΈ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ β€” с зависимостями, окаТСтся, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π±Ρ‹ΡΡ‚Ρ€Π΅Π½ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ собствСнный Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎ-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² список источников ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² πŸ™‚ Π—Π΄Π΅ΡΡŒ я ΠΎΠΏΠΈΡˆΡƒ быстрый HowTo Β«ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉΒ». ИдСю Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ, почитывая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ πŸ™‚
Π‘ΠΏΠ΅Ρ€Π²Π° установим ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ°:
$ sudo apt-get install reprepro

ОписаниС Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ рСпозитория

Π¦Π΅Π½Ρ‚Ρ€ рСпозитория β€” Π΅Π³ΠΎ описаниС. Π“Π»Π°Π²Π½ΠΎΠ΅ Π² Π½Ρ‘ΠΌ β€” список ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ рСпозитория. ΠœΡ‹ создадим ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Β«softΒ» ΠΈ Β«gamesΒ».
Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ для Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ рСпозитория. ВсС дСйствия производятся ΠΈΠ· Π΅Ρ‘ корня.
Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ Ρ„Π°ΠΉΠ» conf/distributions ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:
Description: my local repository
Origin: Ubuntu
Suite: testing
AlsoAcceptFor: unstable experimental
Codename: karmic
Version: 5.0
Architectures: i386 amd64 source
Components: soft games
UDebComponents: soft games

Π’ нашСм Π΄Π΅Π»Π΅ создания простого рСпозитория всС поля Π½Π΅ ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€ΠΎΠ»ΠΈ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ лишь для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ опрСдСлСния Β«Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎΒ» πŸ™‚

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ рСпозитория

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ описан! Π’Π΅ΠΏΠ΅Ρ€ΡŒ сгСнСрируСм Π±ΠΎΠ»Π²Π°Π½ΠΊΡƒ Π½Π° основС описания. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΡ€Π½Π΅ рСпозитория:
$ reprepro export
$ reprepro createsymlinks
И Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² /etc/apt/sources.list:
deb file:///path/to/repo/ karmic soft games
Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°ΡΡˆΠ°Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Π΅Π±-сСрвСра.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Ѐиниш

UPD: @ICD2 подсказываСт, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ GUIшная ΠΏΡ€ΠΎΠ³Π° для создания ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²: GiftWrap.

Π•Ρ‰Π΅ Ρ€Π°Π· ΠΎ deb ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ deb ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ нСсколько ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΏΠ°ΠΏΠΊΠΈ с исходниками

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ dh_make ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠ°ΠΏΠΊΠΎΠΉ с исходниками, Π½ΡƒΠΆΠ½ΠΎ привСсти Π΅Π΅ Π² спСцифичный Π²ΠΈΠ΄.

Папка Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ имяпакСта-вСрсия. Π’.Π΅. Ссли Ρƒ мСня Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° Plugins с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ вСрсии 0.1, Ρ‚ΠΎ я создаю ΠΏΠ°ΠΏΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ plugins-0.1.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² с этой ΠΏΠ°ΠΏΠΊΠΎΠΉ. Архив Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² ΠΈΠΌΠ΅Π½ΠΈ *.orig.tar.gz, Ρ‚.Π΅.:

ПослСдний ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ шаг, это созданиС Π² ΠΏΠ°ΠΏΠΊΠ΅ с исходниками ΠΏΠ°ΠΏΠΊΠΈ debian со мноТСством слуТСбных Ρ„Π°ΠΉΠ»ΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π’ процСссС выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Π½ вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π°Ρ€Ρ…ΠΈΠ²Π° ΠΌΡ‹ создаСм, самый простой это single.

Настройка ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Вся настройка ΠΏΠ°ΠΊΠ΅Ρ‚Π° происходит ΠΏΡƒΡ‚Π΅ΠΌ рСдактирования Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ debian. Рассмотрим Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

changelog

Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» содСрТит ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ измСнСния ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° Π΅Π³ΠΎ содСрТимоС:

Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ΄Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° β€” libvksplugins, Π·Π°Ρ‚Π΅ΠΌ Π΅Π³ΠΎ вСрсия. ВСрсия Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Π²Π΅ части символом Β«-Β». ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅, вторая Β«Ρ€Π΅Π²ΠΈΠ·ΠΈΡŽΒ» ΠΏΠ°ΠΊΠ΅Ρ‚Π°. РСвизия это вСрсия ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚.Π΅. Ссли Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ Π±Ρ‹Π»ΠΎ, Ρ‚ΠΎ рСвизия Ρ€Π°Π²Π½Π° 1. Если ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ с Ρ‚Π°ΠΊΠΎΠΉ вСрсиСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΠΆΠ΅ Π±Ρ‹Π», Π½ΠΎ Π² Π½Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ измСнСния, Ρ‚ΠΎ рСвизия увСличиваСтся.

Π‘Π»ΠΎΠ²ΠΎ unstable ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ являСтся Π½Π΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ, Ρ‚.Π΅. ΠΎΠ½ Π½Π΅ Π±Ρ‹Π» протСстирован Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Надпись urgency=low ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΡ€ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ измСнСния. Π’.ΠΊ. срочности Π½Π΅Ρ‚, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ low. Если Π±Ρ‹, ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ для исправлСния ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ уязвимости ΠΈΠ»ΠΈ ошибки, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² high.

ПослС ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки ΠΈΠ΄Π΅Ρ‚ пустая строка, Π° Π·Π° Π½Π΅ΠΉ пСрвая запись:

Π’ Debian, changelog ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для автоматичСского закрытия ошибок Π² систСмах отслСТивания ошибок Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…. Π’.ΠΊ. Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, я Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‚Π°ΠΊΡƒΡŽ систСму, Ρ‚ΠΎ эта строка ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²ΠΈΠ΄:

ПослСдняя строка являСтся подписью Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, сдСлавшСго запись. Π’ Π½Π΅ΠΉ содСрТится имя ΠΈ адрСс, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Ρ‚Π° измСнСния.

ПослС установки deb ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ„Π°ΠΉΠ» changelog устанавливаСтся Π²

control

Π€Π°ΠΉΠ» debian/control являСтся Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠΌ, ΠΏΡ€ΠΈ создании deb ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°:

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° сСкции ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ пустых строк. КаТдая сСкция описываСт ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚, создаваСмый ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ с исходниками. Рассмотрим ΠΈΡ… ΠΏΠΎ порядку:

Source Данная сСкция Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ исходных ΠΊΠΎΠ΄ΠΎΠ². ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΎ libvksplugins, это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ исходных ΠΊΠΎΠ΄ΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ libvksplugins.

Priority Π­Ρ‚Π° сСкция устанавливаСт ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’.ΠΊ. систСма ΠΌΠΎΠΆΠ΅Ρ‚ прСкрасно ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСкции установлСно Π² optional. Π’.Π΅. этот ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ обязатСлСн для установки. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°Ρ… написано здСсь.

Maintainer Π­Ρ‚Π° сСкция описываСт ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚. Π•Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ довольно прост ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ описаниС Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚.

Build-Depends Одна ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… сСкций, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰Π°Ρ зависимости ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Зависимости, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΉ сСкции Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚. Π’.Π΅. список зависимостСй для сборки ΠΈ установки ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² зависимостях стоят debhelper (>= 9), cmake. Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ debhelper (>= 9) ΡΡ‚Π°Π²ΠΈΡ‚ΡŒΡΡ для всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Она Π½ΡƒΠΆΠ½Π° для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π²ΠΈΠ΄Π° dh_*.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт cmake Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΏΠΊΠ° с исходниками содСрТала Ρ„Π°ΠΉΠ» CMakeLists.txt, Ρ‚.Π΅. для сборки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ систСма сборки CMake. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ зависимости Π΅ΡΡ‚ΡŒ Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ dpkg-depcheck. Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊ:

Но, Ρ‚.ΠΊ. ΠΏΡ€ΠΈ использовании CMake Π½Π΅Ρ‚ скрипта конфигурирования, Ρ‚ΠΎ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π΅Π΅ Ρ‚Π°ΠΊ:

Из ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ:

cmake
qt4-qmake
libqt4-dev

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ зависимостями Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, cmake ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² спискС зависимостСй сборки. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ:

ΠŸΡ€ΠΈ этом Π² CMakeLists.txt ΡƒΠΊΠ°Π·Π°Π½Π° вСрсия cmake, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π²ΠΈΠ΄Π½Π΅Π΅, ΠΈ поэтому ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ· CMakeLists.txt. Для Qt 4 всС понятно с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ вСрсий, Π½ΠΎ для очистки совСсти ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΈ ΠΈΡ… вСрсии:

Π’.Π΅. для Qt 4 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π²Π΅Ρ€ΡΠΈΡŽ 4.8.6:

Standards-Version ВСрсия стандарта, Π² соотвСтствии с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ создан Ρ„Π°ΠΉΠ». Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ.

Section. БСкция для ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚.Π΅. Π³Ρ€ΡƒΠΏΠΏΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ. Π’ ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ Debian Ρ€Π°Π·Π΄Π΅Π»Π΅ 2.4 этот вопрос описан Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Homepage Π”ΠΎΠΌΠ°ΡˆΠ½ΡΡ страница ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’.ΠΊ. Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ писал я ΠΈ Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ страницы, просто ΡƒΠ΄Π°Π»ΡΡŽ эту строку.

Vcs-* Бсылки Π½Π° Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π˜Ρ… Ρƒ мСня Ρ‚ΠΎΠΆΠ΅ Π½Π΅Ρ‚, поэтому ΡƒΠ΄Π°Π»ΡΡŽ эти строки.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ПослС сСкции Ρ„Π°ΠΉΠ»Π°, Π³Π΄Π΅ описываСтся ΠΏΠ°ΠΊΠ΅Ρ‚ с исходниками, ΠΈΠ΄ΡƒΡ‚ сСкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, создаваСмыС ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° с исходниками. Π‘Ρ…Π΅ΠΌΠ° создания ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

Create deb package how to. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Create deb package how to. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Create deb package how to. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Create deb package how to. Π€ΠΎΡ‚ΠΎ Create deb package how to

Из схСмы Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ· исходников ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ 4 ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

Мой ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ вопрос, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ я Ρ…ΠΎΡ‡Ρƒ с Π½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ я ΠΏΠΎΡΡ‚Π°Π²Π»ΡŽ dev ΠΏΠ°ΠΊΠ΅Ρ‚, Π° для использования Π½Π΅Ρ‚.

ΠšΡ€ΠΎΠΌΠ΅ описанных Π²Ρ‹ΡˆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ dbg ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ сборкой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠ°Π΄Π°Π΅Ρ‚ ΠΈ Ρƒ Вас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. Однако, я Ρ‚Π°ΠΊ ΠΈ Π½Π΅ смог ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Ρ‚ΡŒ. ДокумСнтация Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° этот вопрос. Если Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ описано Π² Π½Π΅ΠΉ, Ρ‚ΠΎ я Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ пустой ΠΏΠ°ΠΊΠ΅Ρ‚ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ ΠΊΡƒΡ‡Ρƒ ошибок ΠΏΡ€ΠΈ сборкС.

Π‘Ρ…Π΅ΠΌΠ° Π½Π° рисункС Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ с исходниками называСтся libvksplugins_source, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π² Ρ„Π°ΠΉΠ»Π΅ control ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ с исходниками Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ libvksplugins. На самом Π΄Π΅Π»Π΅, ΠΎΠ½ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ libvksplugins, Π° ΠΏΠ°ΠΊΠ΅Ρ‚ с Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠ°ΠΌΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ libvksplugins… deb. Π‘ΡƒΡ‚ΡŒ этой ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ с исходниками прСдставляСт собой tar Π°Ρ€Ρ…ΠΈΠ² ΠΈ слуТСбныС Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠΎΠ² это Π°Ρ€Ρ…ΠΈΠ² с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ deb.

Настройка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° описаниС ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

Для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², содСрТащих скрипты ΠΈΠ»ΠΈ тСксты, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ all.

Π’Ρ€Π΅Ρ‚ΡŒΡ строка, описываСт зависимости создаваСмого ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΎΠ½Π° описана Π² 4ΠΉ Π³Π»Π°Π²Π΅ Руководства Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Debian:

Π’.Π΅. эта строка Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сборщик ΠΏΠ°ΠΊΠ΅Ρ‚Π° сам ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ зависимости.

ПослСдний Ρ€Π°Π·Π΄Π΅Π» Π΄Π°Π½Π½ΠΎΠΉ сСкции это описаниС ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΠ΅Ρ€Π²Π°Ρ строка содСрТит ΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ описаниС, ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки содСрТат Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:

Настройка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ВмСстС с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ поставляСтся докумСнтация, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π±Ρ‹Π»Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅, добавляСм Π΅Π³ΠΎ описаниС:

rules

Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» являСтся Π°Π½Π°Π»ΠΎΠ³ΠΎΠΌ Makefile для сборки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΎΠ½ создаСтся Π² Ρ‚Π°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅:

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ это bash скрипт с синтаксисом Makefile. ЕдинствСнная интСрСсная конструкция здСсь это

Π’.ΠΊ. исходники ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ систСму сборки CMake, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эту запись ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² debian/control ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ. Для этого, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ названия ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ· Ρ„Π°ΠΉΠ»Π° control, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅ debian Π΄Π²Π° Ρ„Π°ΠΉΠ»Π°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚.dirs, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚.install. Π‘ΡƒΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ для ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΈΡ… содСрТимоС:

Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, отсутствиС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π΄Ρ€ΠΎΠ±ΠΈ Π² путях ΠΈ отсутствиС Π΄Ρ€ΠΎΠ±ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ², ΠΊΡƒΠ΄Π° CMake устанавливаСт Ρ„Π°ΠΉΠ»Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹:

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ настройки

Π’.ΠΊ. исходники ΠΌΠΎΠΈ, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… описаний ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ copyright Ρƒ мСня Π½Π΅Ρ‚, поэтому я ΡƒΠ΄Π°Π»ΡΡŽ всС лишниС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° debian.

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

ПослС настройки, сборка ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² происходит довольно просто, Π½ΡƒΠΆΠ½ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΏΠ°ΠΏΠΊΡƒ debian) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Если Π²Ρ‹ Π΄ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ Π΄ΠΎ сюда β€” Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Ρ‹ Π»ΡŽΠ±ΠΈΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

Π­Ρ‚ΠΎΡ‚ тСкст являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΌΠΎΠ΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° внСдрСния deb ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅. ΠžΠΏΡ‹Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π», Ρ‡Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ сСтСвого рСпозитория (reprepro) ΠΈ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ отслСТиваниС вСрсий, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вСрсии ПО Π½Π° ΠΏΠ°Ρ€ΠΊΠ΅ ΠΈΠ· 30 машин с систСмами Astra Linux 1.3, 1.4 ΠΈ Π­Π»ΡŒΠ±Ρ€ΡƒΡ ОБ.

There is some new and interesting documentation on packaging:

If you need to create rapidly a package, use equivs.

If you prefer to gain real knowledge about Debian packaging:

    Then read the interesting PDF file included in the package: packaging-tutorial

    This is a pragmatic approach to learning how to create Debian packages.

    If the information below doesn’t answer your questions, please look in the New Maintainer’s Guide and in Debian Policy

    The Debian package management chapter of the Developers Reference contains lots of useful information for handling all kinds of problems one runs into with apt and dpkg.

    If you want to create an official Debian package, make sure it’s not already packaged.

    If somebody is working on the package, you should contact them if you intend to make an official package together.

    For a slightly more modern way of managing all of this, check out git-buildpackage. TODO: write this page around git-buildpackage, instead of quilt, for a less baroque and more familiar experience.

    Initial compilation

    Before starting there are some risks you should be aware of:

    WARNINGS:

      All these operations are preferably done in a chroot environment for safety/security reasons. pbuilder and sbuild are such environments. Please consult the pbuilder or sbuild documentation.

      running make on a system can be a security risk! It is recommended to check beforehand that the Makefile does not contain any funny stuff. Obscure/specially crafted applications might fall into this case.

      do NOT run make install, unless you are absolutely sure is safe to do that (check the install target of the makefile). This is a security risk and you may risk to break and/or compromise your system.

      the package is not being worked on (ITP (Intent To Package) is pending)

      are you sure it’s not packaged? Create deb package how to. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Create deb package how to. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Create deb package how to. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Create deb package how to. Π€ΠΎΡ‚ΠΎ Create deb package how toYou could check other Debian based distributions, too.

      It is best to create a chroot jail in which to build the application. This mitigates security and system corruption problems. In addition it ensures that any local changes to your machine will not interfere with the build.

      »Debianization»

      After the first compilation, it’s time to create the Debian specific part of the package.

      Debianize the package by using dh_make or one of the other automatic packaging tools.

      File debian/control: Add to the Build-Depends (sometimes even Build-Depends-Indep) the list of packages needed to be installed for the application to compile (remember the list done previously). You should leave out any packages that are listed in /usr/share/build-essential/essential-packages-list or /usr/share/build-essential/list and also leave out any packages that listed as dependencies by any of those packages.

      Review each of the template files (debian/*.ex). If your package needs that feature, then customize the file as needed and rename it without the «.ex».

      Make sure that all the directories you will place files in are listed in the debian/dirs file without a leading slash (/).

      Make sure that the files are installed in the proper place (under a directory, not on the root system). Take care at the install target from the application makefile. If the application uses autoconf and automake, it may be enough to set the environment variable DESTDIR, e.g. «make DESTDIR=$(CURDIR)/debian/packagename». (dh_make will set this up automatically.)

      Note: very often the upstream package will install files under /usr/local. DO NOT INSTALL ANY FILES IN THERE.

      Initial compilation of the package

      Building Debian packages

      To make sure that a Debian package meets all build dependencies and is not influenced by anything specific to the user’s environment, packages should be built in a chroot environment. Tools like pbuilder can be used for this.

      When working on a package, a faster rebuild can be done with ‘debuild’. But then, all build-dependencies must be satisfied in the installation where the package is built. All necessary packages can be installed automatically with apt-get build-dep. A complete example for building the foo package looks like this: A very basic introduction to create an empty package or a package with just a pdf file (sentence fragment added by HenriLeFoll in Rev. 76)

      This is usually enough for you to backport packages.

      Testing and Check the package

      All tests in chroot

      Testing the package

      Lintian

      Test all the packages with lintian.

      Piuparts

      Check points for any package

      If there are architecture independent things in the package and if they are big enough, are those packaged in a separate package with arch all?

      Create deb package how to. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Create deb package how to. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Create deb package how to. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Create deb package how to. Π€ΠΎΡ‚ΠΎ Create deb package how toThis list of checks is deprecated as check-all-the-things replaces it, except for a couple of checks documented in the TODO file.

      Other ideas can be taken from the check-build script in the pkg-perl-tools package.

      This page is still incomplete; please help by adding information to it. Do not forget that the information here should be in a concise form.

      Examples

      There are interesting examples in the PDF file included in the package : packaging-tutorial.

      Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ:

      Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

      Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *