Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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. big_smile

Vla. tongue

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 tongue

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. tongue

Dernière modification par hotnuma (Le 10/02/2025, à 15:06)

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

Watael a écrit :

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

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 tongue

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 smile


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 tongue

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).

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 ? tongue

Hors ligne

#12 Le 10/02/2025, à 20:36

nany

Re : Télécharger et installer un programme ou un script

Bonjour,



hotnuma a écrit :

… 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 ? tongue

C’est prévu (tout au moins dans Ubuntu).

cat ~/.profile a écrit :
# 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

nany a écrit :

C’est prévu (tout au moins dans Ubuntu).

Ah oui, bien vu, merci. tongue

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. tongue

Hors ligne

#15 Le 10/02/2025, à 21:33

krodelabestiole

Re : Télécharger et installer un programme ou un script

merci à toi ! smile

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. tongue

Hors ligne