Всем привет !
Чот надоели новости, за последнее два дня так ничего интересного и не увидел и как следствие здесь ничего ложить не стал...
Кстати и винда тоже надоела, сейчас решил как говорит Недовирус "потыкать палочкой" в *nix системы...
Короче в этой теме предлагаю рассмотреть процесс создания deb пакета в Дебиан, так-же в общем-то и на юбунте тоже должно работать, ничего сложного,
Итак давайте напишем программу "Здравствуй мир !":
Но перед этим установим необходимые компиляторы, а именно gcc:
Вообще конечно он уже должен-быть на дефолте, но на всяк случай в консоле:
Код:
apt-get install gcc
Далее ставим некоторые зависимости:
Код:
apt-get install build-essential dh-make
Далее нам нужно будет создать пакет, в котором мы будем размещать все компоненты. В данном случае пакет будет называться “HelloWorld”. Для установки пакета используются следующие команды:
Код:
mkdir HelloWorld
touch HelloWorld/Makefile
touch HelloWorld/hello.c
Содержание hello.c должно содержать классический “Hello, World”:
Код:
#include <stdio.h>
int main() {
printf(“Hello, World\n”);
return 0;
}
Make-файл должен иметь следующее содержание:
Информация для того, кто не знаком с Make-файлами:
make — утилита, автоматизирующая процесс преобразования файлов из одной формы в другую. Чаще всего это компиляция исходного кода в объектные файлы и последующая компоновка в исполняемые файлы или библиотеки.
Утилита использует специальные make-файлы, в которых указаны зависимости файлов друг от друга и правила для их удовлетворения. На основе информации о времени последнего изменения каждого файла make определяет и запускает необходимые программы.
Код:
all:
gcc hello.c -o hello
clean:
rm hello || true
Наконец, мы можем приступить к фактическому созданию пакета! Чтобы инициализировать пакет Debian, мы будем использовать удобную dh_make программу, которую мы устанавливали раньше.
При выполнении следующей команды с вводом тех же настроек, которые указаны ниже, Вы должны получить ошибку, но это плановая ошибка. В данном случае важно понять, что такое dh_make и как решить другие проблемы, с которыми Вы, вероятно, столкнетесь позже при работе с более усовершенствованными пакетами.
Код:
dh_make -p HelloWorld_0.0.1
Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch?
[s/i/m/l/k/n] s
Maintainer name : root
Email-Address : root@unknown
Date : Sun, 10 Apr 2016 14:38:32 -0400
Package Name : HelloWorld
Version : 0.0.1
License : blank
Type of Package : Single
Hit <enter> to confirm:
Could not find HelloWorld_0.0.1.orig.tar.xz
Either specify an alternate file to use with -f,
or add --createorig to create one.
Давайте начнем с простого вопроса. Флаг-p используется, потому что dh_make смотрит на имя директории, в которой Вы находитесь в настоящее время, чтобы выяснить имя пакета и версию. Многие могут согласится, что глупо вызывать каталог таким путем, поэтому флаг -p при первом выполнении dh_make передает данные в виде <имя пакета> _ <версия>.
Теперь давайте выясним, что за файл orig.tar.xz. Официальная документация говорит, что это — просто tarball исходного кода, который в нашем случае является просто текущим состоянием каталога.
Теперь простая часть. Выполните следующую команду.
Код:
dpkg-buildpackage
Теперь Вы должны увидеть набор новых файлов в том же каталоге, где размещена Ваша папка HelloWorld.
Нас интересует файл с названием «HelloWorld_0.0.1-1_amd64.deb», который может быть установлен с помощью команды:
Код:
dpkg -i HelloWorld_0.0.1–1_amd64.deb
Удачи !
Последнее редактирование: