À l'aide d'un outil de génération d'installation tiers, j'ai créé un package .deb pour mon application.
Plusieurs dépendances doivent être présentes sur le système d'exploitation Linux de l'utilisateur pour que mon application fonctionne correctement. Plus précisément, "make" et plusieurs bibliothèques ".so", comme libgcc.so
, libc.so
etc.
Tous nos utilisateurs d'Ubuntu peuvent ne pas avoir installé les dépendances requises avant d'exécuter mon programme d'installation de package.
Cet outil d'installation tiers que j'ai utilisé génère un package DEB, mais n'inclut pas les vérifications de dépendance.
En tant que membres de la communauté Ubuntu, pourriez-vous nous dire comment un package .DEB personnalisé sans vérification des dépendances peut être reçu par les utilisateurs de Linux-Ubuntu?
Est-il suffisamment acceptable pour fournir .deb pour une application personnalisée qui ne vérifie pas les dépendances? Ou est-ce assez rare pour "irriter" les utilisateurs de Linux?
Avertissement: Ceci est presque identique à mon autre réponse .
Étant donné que votre programme ne générera pas d'informations de dépendance, nous les ajouterons en nous-mêmes. Par exemple, vous devrez modifier la ligne commençant par Depends:
au format:
Depends: package1, package2|package3
si vous avez besoin d'un package, et l'un du package 2 OR package 3 .
Ouvrez gedit
ou nano
et collez:
#!/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"
Identique au fichier comme debedit.sh
, et le rendre exécutable avec chmod +x debedit.sh
.
Ensuite, exécutez debedit.sh deb_file_output.deb
pour le fichier et modifiez la ligne correcte (ou ajoutez-la). Enregistrez, puis utilisez votre fichier .deb nouvellement créé pour distribuer.
Une réponse vous indique déjà comment ajouter des dépendances, j'essaierai de répondre à votre question sur la perception des DEB sans vérification des dépendances:
Il y a deux raisons pour les fichiers DEB (dans ce contexte et comme je le vois):
aunpack <packagename>.tar.gz; cd <packagename>; make; make install
peut être remplacé par dpkg -i <packagename>.deb
.Alors que la commande en 1) est légèrement plus courte que son alternative, elle ne vaut pas la peine de mon point de vue et seul le point 2) rend un paquet deb utile.
SO: si vous voulez créer un package DEB, vous devez vous occuper des deux: vérifications de dépendances et tests avec la version OS. Si vous n'incluez pas de vérifications ou de tests de dépendances, vos utilisateurs (Ubuntu ou Debian) seront très déçus. Créer un package DEB sans vérification des dépendances, c'est comme tricher, ce qui fait croire à l'utilisateur que vous avez fait quelque chose pour lui que vous n'avez pas fait.
Mon conseil serait: si vous ne voulez pas ajouter les chèques à la main, ne générez pas du tout un paquet DEB. Fournissez une courte ligne d'informations qui dit quelque chose comme "Installer le logiciel en exécutant install.sh.". Les utilisateurs savent alors à quoi s'attendre.