Как мне создать собственный пакет Debian для статических файлов? - PullRequest
12 голосов
/ 24 августа 2011

У меня есть потребность в Debianize некоторых статических ресурсах для программного проекта, но меня смущает доступная информация, и я мог бы при этом использовать некоторые рекомендации. Вот материалы, которые я читал:

Руководство нового сопровождающего Debian кажется наиболее подходящим, особенно эта глава , но это дидактическое изложение неэффективно для меня; это больше напоминает повторное изучение, чем руководство для незнающих. Большая часть информации, которую я нашел, также направлена ​​на включение пакетов в публичный репозиторий, который мне не нужен. Для того, чтобы некоторые добрые люди могли показать мне путь, я создал небольшой проект statrec , который иллюстрирует тип пакета, который мне нужно создать. Это исходное дерево выглядит так:

statrec/
├── LICENSE
├── README.md
├── share
│   ├── gilgamesh.txt
│   └── thoreau.txt
└── VERSION

Мне нужно, но я не могу понять, как:

  • установить statrec/share до /usr/share/statrec/VERSION/,
  • создать или изменить символическую ссылку с /usr/share/statrec/current/ до /usr/share/statrec/VERSION/, а затем
  • удалить предыдущие версии statrec.

Я понимаю, как этого добиться, может быть, какие инструменты использовать, но чувствую себя довольно парализованным из-за избытка информации .

Ответы [ 3 ]

8 голосов
/ 24 августа 2011

Я бы сказал, что проще всего было бы:

  1. Создайте make-файл, который установит файлы так, как вы хотите, чтобы они соответствовали любой настройке DESTDIR, и ничего не будет делать для цели по умолчанию. Что-то вроде:

    all: # nothing to build
    
    install:
        cp -r share/* $(DESTDIR)/usr/share/statrec/$(VERSION)
    

    вещь DESTDIR важна; это не будет установка в систему, но вместо этого во временный каталог, который будет упакован dpkg. Все символические ссылки должны указывать на конечные пункты назначения (без префикса $(DESTDIR)).

  2. Пусть dh_make --native сделает свое дело (он создаст другой make-файл debian/rules, который будет вызывать первый make-файл).

  3. Посмотрите на файлы в debian. Особенно debian/changelog может потребоваться редактирование (именно здесь debuild / dpkg-buildpackage получает номер версии, поэтому его необходимо заполнить).

    Я полагаю, debuild использует fakeroot автоматически, для dpkg-buildpackage вы должны указать это вручную. Даже не думайте запускать его как настоящий root.

  4. Используйте debuild или dpkg-buildpackage -rfakeroot для его построения

Не нужно заботиться об удалении, поскольку dpkg с этим справится.

Обновление: Я предлагаю dh_make --native, потому что я понял, что вопрос заключается в простой установке нескольких файлов данных на несколько систем Debian. Если он должен распространяться, я предлагаю просто спросить на IRC-канале irc.debian.org # debian и, возможно, оставить его на усмотрение разработчика Debian (только разработчики Debian могут загружать в архив Debian, и они обычно хотят сами обрабатывать упаковку) .

Также, если это часть программного обеспечения, а не отдельная группа файлов данных, установка должна быть частью общей установки программного обеспечения с использованием одного общего make-файла, должен быть только один исходный пакет Debian и только debian/control и debian/*.files должны указывать, какие файлы попадают в пакет приложения (что означает «Архитектура: любая»), а какие файлы попадают в пакет данных (то есть «Architecure: все» и обычно получают суффикс * 1052). *).

1 голос
/ 29 августа 2013

Вы должны прочитать раздел 15.2.2 в справочнике по Debian .

Я нашел полезным создать файл .install и пропустить эту часть Makefile для моего собственного проекта

1 голос
/ 24 августа 2011

Я нашел руководство saurik (известного как cydia / jailbreak) "Хостинг Cydia Repository", полезное для создания ваших собственных файлов .deb.Посмотрите на это здесь: http://www.saurik.com/id/7

...