Установщик DEB - Проверки Зависимости

Используя сторонний инструмент поколения установки, я создал .deb пакет для своего приложения.

Существует несколько зависимостей, которые требуются, чтобы присутствовать на Linux пользователя ОС для моего приложения для выполнения правильно. А именно, “сделайте”, и несколько “.so” библиотек, как libgcc.so, libc.so и т.д.

Не все наши пользователи Ubuntu, возможно, потребовали зависимостей, установленных до запуска моего установщика пакета.

Этот сторонний инструмент установщика, который я использовал, генерирует пакет DEB, но не включает проверки зависимости.

Как члены сообщества Ubuntu, Вы могли прокомментировать, как пользовательский.DEB пакет без проверок зависимости может быть получен пользователями Linux-Ubuntu?

Действительно ли достаточно приемлемо поставить .deb для пользовательского приложения, которое не проверяет зависимости? Или действительно ли это достаточно редко для 'возмущения' пользователей Linux?

3
задан 18 February 2014 в 17:45

2 ответа

Отказ от ответственности: Это почти идентично моему другому ответу.

Так как Ваша программа не генерирует информацию о зависимостях, мы добавим его в нас. Например, необходимо будет отредактировать строку, которая запускается с Depends: в формате:

 Depends: package1, package2|package3

если Вы должны упаковать один и один из пакета 2 ИЛИ пакета 3.

Открытый gedit или nano и вставка:

#!/bin/bash

if [[ -z "$1" ]]; then
  echo "Syntax: $0 debfile"
  exit 1
fi

DEBFILE="$1"
TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1
OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb

if [[ -e "$OUTPUT" ]]; then
  echo "$OUTPUT exists."
  rm -r "$TMPDIR"
  exit 1
fi

dpkg-deb -x "$DEBFILE" "$TMPDIR"
dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN

if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then
  echo DEBIAN/control not found.

  rm -r "$TMPDIR"
  exit 1
fi

CONTROL="$TMPDIR"/DEBIAN/control

MOD=`stat -c "%y" "$CONTROL"`
vi "$CONTROL"

if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then
  echo Not modfied.
else
  echo Building new deb...
  dpkg -b "$TMPDIR" "$OUTPUT"
fi

rm -r "$TMPDIR"

То же файл как debedit.sh, и сделайте это исполняемым файлом с chmod +x debedit.sh.

Затем выполненный debedit.sh deb_file_output.deb для файла и редактирования корректная строка (или добавляют его). Сохраните и затем используйте свой недавно созданный .deb файл для распределения.

Источник: http://ubuntuforums.org/showthread.php?t=636724

1
ответ дан 18 February 2014 в 17:45

Один ответ уже говорит вам, как добавить зависимости, я постараюсь ответить на ваш вопрос о восприятии DEB без проверки зависимостей:

Есть две причины для файлов DEB (в этом контексте и, как я вижу, it):

  1. Обеспечить комбинацию «tar», «make» и «make install». Под этим я подразумеваю, что программное обеспечение поставляется в одном файле, так как другое программное обеспечение входит в tar-архив и может быть установлено с помощью одной команды, как и другое программное обеспечение, которое часто поставляется с установочным скриптом. Таким образом, aunpack <packagename>.tar.gz; cd <packagename>; make; make install можно заменить на dpkg -i <packagename>.deb.
  2. Убедитесь, что через зависимости и предыдущие тесты с версией ОС, для которой она предусмотрена, все работает, и все можно без проблем управлять (устанавливать, удалять).

Хотя команда в 1) немного короче, чем ее альтернатива, с моей точки зрения она не стоит хлопот, и только пункт 2) делает пакет deb полезным.

SO: если вы хотите создать пакет DEB, вы должны позаботиться как о проверках зависимостей, так и о тестировании с версией ОС. Если вы не включите проверку зависимостей или тесты, ваши пользователи (Ubuntu или Debian) будут очень разочарованы. Создание пакета DEB без проверки зависимостей - это как мошенничество, заставляющее пользователя поверить, что вы сделали для него что-то, чего не сделали.

Мой совет: если вы не хотите добавлять чеки вручную, не создавайте пакет DEB вообще. Предоставьте короткую строку с информацией, которая выглядит примерно так: «Установите программное обеспечение, запустив install.sh.». Тогда пользователи знают, чего ожидать.

0
ответ дан 18 February 2014 в 17:45

Другие вопросы по тегам:

Похожие вопросы: