J'ai un scénario où je ne veux pas permettre à l'utilisateur final de télécharger le fichier mais je veux qu'il installe l'outil requis sur son Mac en utilisant le package FTP. Y a-t-il un moyen qui permet à l'utilisateur d'exécuter la commande depuis Terminal et d'exécuter le package sans le télécharger. En faisant des recherches, j'ai vu l'option de wget mais je suis toujours en train de vérifier si c'est faisable ou non. Merci de me donner votre avis à ce sujet.
Réponse
Trop de publicités?Script Shell: curl
& installateur
Si vous pouvez héberger le package sur un site web, l'installation peut être réduite aux deux commandes suivantes.
-
Téléchargez le fichier sur l'ordinateur local :
/usr/bin/curl https://www.example.com/mypackage.pkg > /tmp/mypackage.pkg
-
Installez le fichier téléchargé :
/usr/sbin/installateur -pkg /tmp/mypackage.pkg -cible /
Vous pouvez combiner ces commandes dans un fichier texte appelé install-mypackage.command
:
#!/bin/bash
/usr/bin/curl https://www.example.com/mypackage.pkg > /tmp/mypackage.pkg
/usr/sbin/installateur -pkg /tmp/mypackage.pkg -cible /
/bin/supprimer /tmp/mypackage.pkg
Lorsque le fichier .command
est ouvert par l'utilisateur, le package sera téléchargé et installé.
Cette approche suppose :
- Le logiciel est distribué sous forme de fichier
.pkg
plat. - Vous pouvez héberger le package quelque part de manière privée.
Utiliser sftp
au lieu de curl
Si vos fichiers sont hébergés sur un serveur de protocole de transfert de fichiers sécurisé (sftp), utilisez le client sftp
. Pour scripter le client, utilisez un fichier batch ou suivez les réponses à Single Line sftp from Terminal.
Améliorations
Veuillez noter que ce script ne comporte pas de vérification d'erreurs. Considérez ce script comme un point de départ pour votre propre script.
Vous pourriez ajouter un mot de passe à votre site web puis utiliser une URL avec les identifiants intégrés, comme https://username:password@www.example.com/mypackage.pkg
.
Étant donné que vous avez un accès ssh
aux ordinateurs, vous pourriez exécuter ce script ou ces commandes à distance.