Используя сторонний инструмент поколения установки, я создал .deb пакет для своего приложения.
Существует несколько зависимостей, которые требуются, чтобы присутствовать на Linux пользователя ОС для моего приложения для выполнения правильно. А именно, “сделайте”, и несколько “.so” библиотек, как libgcc.so
, libc.so
и т.д.
Не все наши пользователи Ubuntu, возможно, потребовали зависимостей, установленных до запуска моего установщика пакета.
Этот сторонний инструмент установщика, который я использовал, генерирует пакет DEB, но не включает проверки зависимости.
Как члены сообщества Ubuntu, Вы могли прокомментировать, как пользовательский.DEB пакет без проверок зависимости может быть получен пользователями Linux-Ubuntu?
Действительно ли достаточно приемлемо поставить .deb для пользовательского приложения, которое не проверяет зависимости? Или действительно ли это достаточно редко для 'возмущения' пользователей Linux?
Отказ от ответственности: Это почти идентично моему другому ответу.
Так как Ваша программа не генерирует информацию о зависимостях, мы добавим его в нас. Например, необходимо будет отредактировать строку, которая запускается с 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 файл для распределения.
Один ответ уже говорит вам, как добавить зависимости, я постараюсь ответить на ваш вопрос о восприятии DEB без проверки зависимостей:
Есть две причины для файлов DEB (в этом контексте и, как я вижу, it):
aunpack <packagename>.tar.gz; cd <packagename>; make; make install
можно заменить на dpkg -i <packagename>.deb
. Хотя команда в 1) немного короче, чем ее альтернатива, с моей точки зрения она не стоит хлопот, и только пункт 2) делает пакет deb полезным.
SO: если вы хотите создать пакет DEB, вы должны позаботиться как о проверках зависимостей, так и о тестировании с версией ОС. Если вы не включите проверку зависимостей или тесты, ваши пользователи (Ubuntu или Debian) будут очень разочарованы. Создание пакета DEB без проверки зависимостей - это как мошенничество, заставляющее пользователя поверить, что вы сделали для него что-то, чего не сделали.
Мой совет: если вы не хотите добавлять чеки вручную, не создавайте пакет DEB вообще. Предоставьте короткую строку с информацией, которая выглядит примерно так: «Установите программное обеспечение, запустив install.sh.». Тогда пользователи знают, чего ожидать.