#1 Le 03/07/2022, à 15:35
- josran
1 script install.sh n'installe pas le paquet avec lequel il est fourni
[Résolu]Je ne comprends pas pourquoi cette installation échoue, alors que le script fourni est supposé la simplifier au maximum ainsi que cela est préconisé ici : fbc_install
The FreeBASIC compiler can be used from where it was extracted. Usually it is installed into the /usr/local system directory though, so that the fbc program is available through-out the whole system. To do that, run the included installation script:
$ cd FreeBASIC-x.xx.x-linux-x86
$ sudo ./install.sh -i
J'ai pourtant essayé de le rendre exécutable puisque qu'il ne l'était pas et je l'ai ensuite lancé, en vain, tout en remarquant qu'il n'avait pas acquis la propriété "x" :
uu@ttw:/media/Data-1/Base logicielle installée/MesOutils_BASIC/FreeBasic/FreeBASIC-1.09.0-linux-x86_64$ ls -al
total 304
drwxrwxr-x 1 uu users 432 janv. 1 2022 .
drwxrwxr-x 1 uu users 352 juil. 3 17:06 ..
drwxrwxr-x 1 uu users 0 janv. 1 2022 bin
-rw-rw-r-- 1 uu users 282564 janv. 1 2022 changelog.txt
drwxrwxr-x 1 uu users 0 janv. 1 2022 doc
drwxrwxr-x 1 uu users 8192 janv. 1 2022 examples
drwxrwxr-x 1 uu users 0 janv. 1 2022 include
-rw-rw-r-- 1 uu users 1229 janv. 1 2022 install.sh
drwxrwxr-x 1 uu users 0 janv. 1 2022 lib
-rw-rw-r-- 1 uu users 14808 janv. 1 2022 readme.txt
uu@ttw:/media/Data-1/Base logicielle installée/MesOutils_BASIC/FreeBasic/FreeBASIC-1.09.0-linux-x86_64$ sudo chmod +x install.sh
[sudo] Mot de passe de uu :
uu@ttw:/media/Data-1/Base logicielle installée/MesOutils_BASIC/FreeBasic/FreeBASIC-1.09.0-linux-x86_64$ ls -al
total 304
drwxrwxr-x 1 uu users 432 janv. 1 2022 .
drwxrwxr-x 1 uu users 352 juil. 3 17:06 ..
drwxrwxr-x 1 uu users 0 janv. 1 2022 bin
-rw-rw-r-- 1 uu users 282564 janv. 1 2022 changelog.txt
drwxrwxr-x 1 uu users 0 janv. 1 2022 doc
drwxrwxr-x 1 uu users 8192 janv. 1 2022 examples
drwxrwxr-x 1 uu users 0 janv. 1 2022 include
-rw-rw-r-- 1 uu users 1229 janv. 1 2022 install.sh
drwxrwxr-x 1 uu users 0 janv. 1 2022 lib
uu@ttw:/media/Data-1/Base logicielle installée/MesOutils_BASIC/FreeBasic/FreeBASIC-1.09.0-linux-x86_64$ sudo ./install.sh -i
sudo: ./install.sh : commande introuvable
uu@ttw:/media/Data-1/Base logicielle installée/MesOutils_BASIC/FreeBasic/FreeBASIC-1.09.0-linux-x86_64$
En lisant le script install.sh
#!/bin/sh
set -e
case "$1" in
"-i" | "-u")
;;
*)
echo "usage:"
echo "./install.sh -i [prefix] install FB into prefix directory"
echo "./install.sh -u [prefix] uninstall FB from prefix directory"
echo "(default prefix: /usr/local)"
exit 1
;;
esac
if [ -n "$2" ]; then
prefix="$2"
else
prefix=/usr/local
fi
if [ ! -d "$prefix" ]; then
echo "$prefix is not a valid directory"
exit 1
fi
if [ ! -w "$prefix" ]; then
echo "You need root priviledges to access $prefix"
exit 1
fi
case "$1" in
"-i")
dir="`dirname '$0'`/"
if [ "$dir" = "/" ]; then
dir=""
fi
mkdir -p -m 0755 "$prefix/bin"
install "${dir}"bin/fbc "$prefix/bin"
mkdir -p -m 0755 "$prefix/include/freebasic"
cp -R "${dir}"include/freebasic/* "$prefix/include/freebasic"
mkdir -p -m 0755 "$prefix/lib/freebasic"
cp -R "${dir}"lib/freebasic/* "$prefix/lib/freebasic"
mkdir -p -m 0755 "$prefix/man/man1"
gzip -c "${dir}"doc/fbc.1 > "$prefix/man/man1/fbc.1.gz"
echo "FreeBASIC compiler successfully installed in $prefix"
;;
"-u")
rm -f "$prefix/bin/fbc"
rm -rf "$prefix/include/freebasic"
rm -rf "$prefix/lib/freebasic"
rm -f "$prefix/man/man1/fbc.1.gz"
echo "FreeBASIC compiler successfully uninstalled from $prefix"
;;
esac
On peut voir que j'ai bien inclus le paramètre -i dans ma commande. Il me semble donc que, si j'avais commis une erreur, j'aurais au moins dû voir s'afficher "usage:" ou bien un message d'errreur envoyé par le script; or, il n'en est rien.
Merci par avance à tout participant plus clairvoyant que moi, je suis prêt à apprendre.
Dernière modification par josran (Le 04/07/2022, à 04:04)
Hors ligne
#2 Le 03/07/2022, à 16:18
- geole
Re : 1 script install.sh n'installe pas le paquet avec lequel il est fourni
chmod +x install.sh
ls -ls
./install.sh
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#3 Le 03/07/2022, à 17:06
- Tawal
Re : 1 script install.sh n'installe pas le paquet avec lequel il est fourni
+1
En utilisant sudo, tu te substitues à root,
d'après les droits sur le fichier install.sh, root n'a que la lecture
et donc ne peut pas modifier les attributs de ce fichier.
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#4 Le 03/07/2022, à 17:35
- jplemoine
Re : 1 script install.sh n'installe pas le paquet avec lequel il est fourni
Si le fichier est sur un système de fichier est du fat ou ntfs (/media/Data-1), le chmod ne fera rien...
Donc, je pense que le plus simple est de faire (sans aucune garantie) :
sudo /bin/sh ./install.sh -i
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#5 Le 03/07/2022, à 17:41
- MicP
Re : 1 script install.sh n'installe pas le paquet avec lequel il est fourni
Bonjour
Je constate aussi que l'installation se fait à partir du répertoire :
/media/Data-1/Base logicielle installée/MesOutils_BASIC/FreeBasic/FreeBASIC-1.09.0-linux-x86_64
- dont l'appartenance de groupe est différente de celle du compte utilisateur,
- dont le chemin comporte un nom comportant des caractères espace
- et dont le système de fichiers est peut-être monté et dont on ne connaît pas le type de système de fichiers
Tout ça peut aussi empêcher certains fichiers script d'êtres exécutables (en fonction des options de montage)
et donc empêcher le script de faire son travail.
Dernière modification par MicP (Le 04/07/2022, à 05:14)
Hors ligne
#6 Le 03/07/2022, à 17:43
- jplemoine
Re : 1 script install.sh n'installe pas le paquet avec lequel il est fourni
- dont le chemin comporte un nom comportant des caractères espace
Et une voyelle accentuée...
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#7 Le 03/07/2022, à 18:13
- ylag
Re : 1 script install.sh n'installe pas le paquet avec lequel il est fourni
Bonsoir,
Sous toute réserve, je crois qu'il faut passer le chemin vers un répertoire d'installation si on utilise l 'option « -i », ce qui donnerait quelque chose de semblable à :
sudo ./install.sh -i /chemin/vers/répertoire_install
...sinon, ça s'installerait par défaut dans /usr/local sans l'option « -i » ?
A+
Dernière modification par ylag (Le 03/07/2022, à 18:18)
Hors ligne
#8 Le 03/07/2022, à 20:21
- Watael
Re : 1 script install.sh n'installe pas le paquet avec lequel il est fourni
En utilisant sudo, tu te substitues à root,
d'après les droits sur le fichier install.sh, root n'a que la lecture
et donc ne peut pas modifier les attributs de ce fichier.
si, si.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 04/07/2022, à 03:54
- josran
Re : 1 script install.sh n'installe pas le paquet avec lequel il est fourni
Merci à tous de vos réponses aussi rapides. /media/Data-1 est bien une partition NTFS et j'ai donc appliqué la solution de jplemoine
uu@ttw:/media/Data-1/Base logicielle installée/MesOutils_BASIC/FreeBasic/FreeBAS
IC-1.09.0-linux-x86_64$ sudo chmod +x install.sh
[sudo] Mot de passe de uu :
uu@ttw:/media/Data-1/Base logicielle installée/MesOutils_BASIC/FreeBasic/FreeBAS
IC-1.09.0-linux-x86_64$ ls -ls
total 304
0 drwxrwxr-x 1 uu users 0 janv. 1 2022 bin
276 -rw-rw-r-- 1 uu users 282564 janv. 1 2022 changelog.txt
0 drwxrwxr-x 1 uu users 0 janv. 1 2022 doc
8 drwxrwxr-x 1 uu users 8192 janv. 1 2022 examples
0 drwxrwxr-x 1 uu users 0 janv. 1 2022 include
4 -rw-rw-r-- 1 uu users 1229 janv. 1 2022 install.sh
0 drwxrwxr-x 1 uu users 0 janv. 1 2022 lib
16 -rw-rw-r-- 1 uu users 14808 janv. 1 2022 readme.txt
uu@ttw:/media/Data-1/Base logicielle installée/MesOutils_BASIC/FreeBasic/FreeBAS
IC-1.09.0-linux-x86_64$ sudo /bin/sh ./install.sh -i
FreeBASIC compiler successfully installed in /usr/local
A la suite de quoi, on trouve bien FreeBasic sous /usr/local
uu@ttw:/usr/local/bin$ ls -al f*
-rwxr-xr-x 1 root root 2497104 juil. 4 06:18 fbc
Hors ligne