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

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

MicP a écrit :

- dont le chemin comporte un nom comportant des caractères espace

Et une voyelle accentuée... smile


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.

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

Tawal a écrit :

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