Sur Slackware, l'utilisation de sbopkg
permet de construire un package à partir des sources. Repos n'est pas aussi gros que Debian, mais c'est sympa.
Certains logiciels peuvent utiliser des variables d'environnement, par exemple sur l'émulateur VICE c64, si la variable FFMPEG
est définie sur yes
, elle permettra ffmpeg
d'enregistrer l'émulateur.
J'ai essayé d'utiliser
$ export FFMPEG=yes; Sudo sbopkg -B -i vice
mais ffmpeg
est désactivé.
Au lieu de cela, j'ai dû utiliser
$ su -
$ export FFMPEG=yes
$ sbopkg -B -i vice
qui fonctionne.
Comment utiliser les variables d'environnement avec Sudo
?
Vous pouvez utiliser l'option -E
De Sudo:
FMPEG=yes Sudo -E sbopkg -B -i vice
Du manuel:
-E, --preserve-env
Indique à la politique de sécurité que l'utilisateur souhaite conserver ses variables d'environnement existantes. La politique de sécurité peut renvoyer une erreur si l'utilisateur n'est pas autorisé à préserver l'environnement.
Notez que cela exporte tous vos variables d'environnement existantes. Il est plus sûr d'exporter uniquement les variables d'environnement dont vous avez besoin avec la syntaxe suivante:
Sudo FMPEG=yes sbopkg -B -i vice
Sudo
désinfecte les variables de l'environnement avant d'appeler la commande donnée. Vous devrez lui demander de conserver les variables dans l'environnement pour que votre commande fonctionne.
De plus, vous devrez export
la variable FMPEG
avant d'utiliser Sudo
(export FMPEG=yes; Sudo
), affectez-le en même temps que l'appel de Sudo
(FMPEG=yes Sudo
), ou utilisez env
(env FMPEG=yes Sudo
).
Pour conserver les variables d'environnement, utilisez -E
(ou --preserve-env
):
$ env FMPEG=yes Sudo -E sbopkg -B -i vice
Il est également possible de définir des variables d'environnement spécifiques comme ceci:
$ Sudo FMPEG=yes sbopkg -B -i vice
Si cela échoue en raison de la politique de sécurité en place, affichez un shell racine et définissez-y la variable:
$ Sudo -s
# env FMPEG=yes sbopkg -B -i vice
# exit
notez que: (export a=b; command)
est équivalent à a=b command
. Notez les crochets.
Ensuite, si nous appliquons la variable non pas à Sudo
mais directement à sbopkg
, donc au lieu de FFMPEG=yes Sudo sbopkg -B -i vice
nous pouvons faire Sudo FFMPEG=yes sbopkg -B -i vice
Si une police de sécurité l'empêche, alors: Sudo bash -c "FFMPEG=yes sbopkg -B -i vice"
(N'utilisez pas -E
, cela nous rend peu sûr car cela entraînera la fuite de toutes sortes de variables inattendues.)