#1 Le 10/02/2025, à 14:13
- hotnuma
Télécharger et installer un programme ou un script
Voici un petit script qui permet de télécharger et d'installer un programme ou un script, par exemple installer yt-dlp_linux
Le script se trouve ici : https://github.com/hotnuma/systools/blo … rc/appinst
Installation :
Installer d'abord wget si ce n'est pas déjà fait :
sudo apt install wget
Télécharger le script :
wget "https://raw.githubusercontent.com/hotnuma/systools/refs/heads/master/src/appinst"
Le rendre exécutable :
chmod +x ./appinst
L'installer dans /usr/local/bin :
sudo mv ./appinst /usr/local/bin/
Exemple d'utilisation avec yt-dlp :
https://github.com/yt-dlp/yt-dlp
Le fichier à télécharger est :
https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux
Pour l'installer :
sudo appinst "https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux"
Le programme doit ensuite se trouver dans /usr/localbin
whereis yt-dlp_linux
yt-dlp_linux: /usr/local/bin/yt-dlp_linux
Comme d'habitude :
1. Faire régulièrement des sauvegardes sur des disques amovibles.
2. Ne télécharger des programmes que de sources sures et toujours se méfier, même des sources sures.
Vla.
Xfce 4.18 / https://github.com/hotnuma
Hors ligne
#2 Le 10/02/2025, à 14:23
- sputnick
Re : Télécharger et installer un programme ou un script
Hey,
pourquoi github géré par microsoft?
Ca à l'air restreint à shell et ELF, donc les scripts ruby, perl, python... OUT:
# appinst https://raw.githubusercontent.com/sputnick-dev/saxon-lint/refs/heads/master/saxon-lint.pl
--2025-02-10 19:25:39-- https://raw.githubusercontent.com/sputnick-dev/saxon-lint/refs/heads/master/saxon-lint.pl
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8001::154, 2606:50c0:8003::154, 2606:50c0:8000::154, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8001::154|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6629 (6,5K) [text/plain]
Saving to: ‘saxon-lint.pl’
saxon-lint.pl 100%[=============================================================>] 6,47K --.-KB/s in 0s
2025-02-10 19:25:40 (43,6 MB/s) - ‘saxon-lint.pl’ saved [6629/6629]
file : /usr/local/bin/saxon-lint.pl
type : Perl script text executable
*** file is not an executable file
abort...
Et ça télécharge direct dans /usr/local/bin, c'est crado.
Idée pour que ton projet soit utile, il pourrait chercher la version raw si la page du script est en HTML.
Aussi, il est souhaitable de passer shellcheck:
shellcheck appinst
In appinst line 36:
filename=$(basename ${1})
^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
Did you mean:
filename=$(basename "${1}")
For more information:
https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...
Dernière modification par sputnick (Le 10/02/2025, à 14:38)
Je sais, un peu partout, tout le monde s'entretue, c'est pas gai, mais d'autres s'entrevivent, j'irai les retrouver. Jacques Prévert
https://sputnick.fr
Hors ligne
#3 Le 10/02/2025, à 14:32
- hotnuma
Re : Télécharger et installer un programme ou un script
Je vais ajouter une option pour télécharger n'importe quel type de fichier
Edit : j'ai ajouté une option -f pour force :
sudo appinst -f "https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux"
C'est à dire, pas de vérification du type de fichier, par la suite il faudra ajouter des types de fichiers supplémentaires.
Vla.
Dernière modification par hotnuma (Le 10/02/2025, à 15:06)
Xfce 4.18 / https://github.com/hotnuma
Hors ligne
#4 Le 10/02/2025, à 16:31
- Watael
Re : Télécharger et installer un programme ou un script
salut,
move_file()
{
if [[ ! -f "$1" ]]; then
return 1
fi
bofbof.
move_file()
{
test -f "$1" || return 1
hehe!
puis, while (($#))
tu peux aussi sortir le shift du case, puisque quelque soit le cas shift est exécuté.
et puis...
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 10/02/2025, à 16:37
- hotnuma
Re : Télécharger et installer un programme ou un script
puis, while (($#))
tu peux aussi sortir le shift du case, puisque quelque soit le cas shift est exécuté.
Comme ça ?
while (($#)); do
arg="$1"
case $arg in
-f)
FORCE=1
;;
*)
URL="$arg"
;;
esac
shift
done
Xfce 4.18 / https://github.com/hotnuma
Hors ligne
#6 Le 10/02/2025, à 16:45
- Watael
Re : Télécharger et installer un programme ou un script
oui.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 10/02/2025, à 16:53
- hotnuma
Re : Télécharger et installer un programme ou un script
J'ai corrigé, j'ai mis :
while (($#)); do
case "$1" in
-f)
FORCE=1
;;
*)
URL="$1"
;;
esac
shift
done
Merci
Xfce 4.18 / https://github.com/hotnuma
Hors ligne
#8 Le 10/02/2025, à 18:35
- Watael
Re : Télécharger et installer un programme ou un script
c'est bien, arg n'était pas utile.
les guillemets, dans case sont très facultatifs :
$ v='foo bar baz'
$ case $v in 'foo bar baz') echo ok;; *) echo autres;; esac
ok
$
pareil pour les assignations :
url=$1
tu noteras le passage en minuscules, parce que les noms de variables tout en majuscules sont, par convention, réservés aux variables d'environnement (LOGNAME, HOME, PWD...), mais il est possible de panacher : leNom2maVariableAmoi
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 10/02/2025, à 19:21
- hotnuma
Re : Télécharger et installer un programme ou un script
Je note, merci. Je vais avoir plusieurs scripts à corriger du coup
Xfce 4.18 / https://github.com/hotnuma
Hors ligne
#10 Le 10/02/2025, à 19:21
- krodelabestiole
Re : Télécharger et installer un programme ou un script
ça pourrait être bien d'avoir le choix d'installer dans ~/.local/bin/ plutôt que /usr/local/bin/, seulement pour l'utilisateur courant.
voire même que ce soit le comportement par défaut (différent par ex. quand on appelle le script avec ou sans sudo).
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#11 Le 10/02/2025, à 19:30
- hotnuma
Re : Télécharger et installer un programme ou un script
Je peux faire ça oui, en testant $EUID je pense mais le truc c'est que ~/.local/bin/ n'est pas dans la variable $PATH :
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Du coup, comment on exécute le programme ? On doit taper le chemin complet ?
Xfce 4.18 / https://github.com/hotnuma
Hors ligne
#12 Le 10/02/2025, à 20:36
- nany
Re : Télécharger et installer un programme ou un script
Bonjour,
… mais le truc c'est que ~/.local/bin/ n'est pas dans la variable $PATH :
…
Du coup, comment on exécute le programme ? On doit taper le chemin complet ?
C’est prévu (tout au moins dans Ubuntu).
# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi # set PATH so it includes user's private bin if it exists if [ -d "$HOME/.local/bin" ] ; then PATH="$HOME/.local/bin:$PATH" fi
Hors ligne
#13 Le 10/02/2025, à 20:47
- hotnuma
Re : Télécharger et installer un programme ou un script
C’est prévu (tout au moins dans Ubuntu).
Ah oui, bien vu, merci.
Xfce 4.18 / https://github.com/hotnuma
Hors ligne
#14 Le 10/02/2025, à 21:27
- hotnuma
Re : Télécharger et installer un programme ou un script
J'ai modifié, quand on exécute sans "sudo", l'installation se fait dans ~/.local/bin
C'était une bonne idée, merci.
Xfce 4.18 / https://github.com/hotnuma
Hors ligne
#15 Le 10/02/2025, à 21:33
- krodelabestiole
Re : Télécharger et installer un programme ou un script
merci à toi !
nouveau forum ubuntu-fr on en parle là : refonte du site / nouveau design
profil - sujets récurrents - sources du site
Hors ligne
#16 Le 10/02/2025, à 21:40
- Watael
Re : Télécharger et installer un programme ou un script
basename est une commande externe inutile en shell compatible POSIX : filename=${ur##*/}
et les accolades aussi: filepath=$basedir/$filename
attention!
test -f $filepath || wget "$url"
avec test, il faut impérativement des guillemets.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#17 Le 10/02/2025, à 22:35
- hotnuma
Re : Télécharger et installer un programme ou un script
J'ai corrigé, merci.
Xfce 4.18 / https://github.com/hotnuma
Hors ligne