| ||||||||
Astucien | Bonjour, Je poste ici vu qu'il n'y a pas de forum freeBSD. Il a quelque temps, par curiosité, j'ai installé freeBSD + KDE en invité d'Archlinux avec virtualbox. Puis, après quelques heures passées dessus, je l'ai délaissée. Ma Archlinux étant - de mon point de vue - complète, je dois avouer que je ne lui trouve plus grand intérêt vu que je ne l'utilise que pour surfer sur le net, visionner des films, écouter mes MP3 et prendre connaissance des nouveautés. Pour le reste, j'utilise W7 par obligation professionnelle. Pour le fun, je me suis donc retourné vers la freeBSD installée en virtuel et petit à petit, j'ai commencé à la peaufiner. J'ai transféré quelques scripts bash et perl se trouvant sur une clef USB devenue accessible après avoir installé les additions clients de linux (je n'en ai pas trouvé de typiquement destinée à freeBSD). Comme freeBSD n'utilise pas bash (il utilise chsh), il ne m'a été possible, dans un premier temps, que d'exécuter les scripts perl. En me promenant sur le Google, j'ai trouvé un site indiquant comment installer bash en trois lignes de commande :
Ensuite, pour faire en sorte que chsh soit remplacé par bash :
Enfin, pour vérifier que bash était bien devenu mon shell :
A ce stade, je me dis que je vais pouvoir exécuter mes scripts bash. Hélas :
Là où je suis perdu, c'est au niveau de la dernière phrase. Qu'est qu'un askpass program ? A mon avis, c'est en rapport avec sudoers. Enfin, quand j'essaye de lancer le script en double-cliquant sur son icône sur le bureau, la réponse est : KDEInit could'nt launch ... Quelqu'un peut-il m'aider ? Merci d'avance.
Modifié par Mimile le 21/03/2015 11:30 | |||||||
Publicité | ||||||||
| ||||||||
Astucien | Bonjour Mimile, toujours en train d'expérimenter en Linux/BSD, même si Windows 7 te garde avec lui. Tout d'abord, l'interpréteur de commandes chsh n'existe pas. L'intepréteur de commandes par défaut sous FreeBSD est Csh. chsh est une commande pour changer l'interpréteur de commandes dans la configuration de l'utilisateur et comme tu le montres, changer à la volée d'intrepréteur de commandes. Tu aurais pu installer Bash via le dépôt binaire de FreeBSD pkg install bash L'installation à l'aide des ports est aussi bonne. Je pense qu'il peut être utile de fermer sa session de d'en ouvrir une nouvelle après avoir changer l'interpréteur de commandes par défaut d'un utilisateur. C'est bien certain que si le script Bash que tu veux faire exécuter requiert les droits root, alors, tu devras l'exécuter en root, ou bien utiliser sudo, voir su pour le faire. Je pense que sudo peut être installé via de dépôt binaire de FreeBSD, sinon via les ports. Il faut sous FreeBSD, comme sous Linux, que l'utilisateur soit dans le groupe qui permet d'utiliser sudo. C'est décrit quand tu édites en root le fichier /etc/sudoers. Modifié par Logicien le 21/03/2015 14:03 | |||||||
Astucien | bash et sudo sont bel et bien installés et j'ai modifié sudoers en sorte que je ne doive plus fournir mon mot de passe root quand je lance une commande avec sudo. Au passage, je m'étonne quand tu dis que chsh n'existe plus. En effet, quand j'ai exécuté les commandes # chsh -s /usr/local/bin/bash {username} je n'ai pas eu de retour négatif du genre command not found. Juste pour voir, j'ai exécuté pkg install bash ce qui donne :
Donc, en ce qui concerne bash, tout me semble en ordre. Le script que j'essaye de faire fonctionner ne requiert pas les droits root. Il s'agit en fait d'un petit script qui permet d'uploader une image sur le site imgur, lequel renvoie l'URL de l'image et de sa miniature. Très simple de fonctionnement : quand on le lance, il ouvre le dossier ~/Images ; on choisit celle que l'on veut et on valide. 2 ou 3 secondes plus tard, on obtient les URL en retour. C'est utile car j'agrémente souvent mes postes ou mes réponses de captures. Depuis que j'ai modifié sudoers, je n'ai plus la réponse : sudo: no askpass program specified, try setting SUDO_ASKPASS Maintenant, quand je lance mon script, j'obtiens ceci : - en root :
En simple utilisateur :
Je précise que j'ai bien indiqué que ce script était exécutable. Dernière bizarrerie : quand je lance dolphin, mon dossier Telechargement se trouve dans ma partition /home Quand je lance konqueror, ce dossier se trouve dans /usr/home ... Décidément freeBSD n'en fait qu'à sa tête
| |||||||
Astucien | J'ai seulement dit qu'il n'existe pas d'interpréteur de commandes chsh. Il existe bien une commande nommée chsh qui devrait te dire tout ce qu'elle fait en lisant la page de manuel man chsh Pour pouvoir avoir accès à l'interface graphique d'okapi en super-utilisateur root ou avec sudo, tu dois d'abord exécuter la commande xhost + sous le compte akopi. Alors seulement tu peux exécuter la commande sudo /usr/local/bin/bash imgur.sh Quand tu en as fini, tu fais xhost - Assure-toi que le script imgur.sh est dans le chemin de recherche des exécutables de Bash. Fait echo $PATH pour le savoir. Si le script n'est pas dans le chemin de recherche des exécutables de Bash, tu dois donner le chemin complet vers le script ou le copier/déplacer vers un des chemins de recherches affiché, ou ajouter son chemin aux chemins de recherches de Bash en modifiant la variable d'environnement PATH. Si le script fait référence à des commandes qui ne sont pas dans le chemin de recherche des exécutables de Bash, il faut configurer les chemins de recherche ou le script en conséquences. Évidemment, toutes les commandes exécutées par le script doivent être installées. Modifié par Logicien le 21/03/2015 17:07 | |||||||
Astucien | Bonjour Paul, Merci pour ta précédente réponse. Voici ce que me renvoie echo $PATH :
j'ai vérifié le texte de mon script et je me suis rendu compte qu'il faisait appel à yad (fork de zenity) ; vérification faite, yad n'était pas installé ce à quoi j'ai remédié. Ensuite, j'ai exécuté xhost + puis sudo /usr/local/bin/bash imgur.sh ce qui a renvoyé :
De quelle option peut-il s'agir ? Si je n'utilise pas sudo :
J'en déduis, selon ce que tu as écrit dans ton précédent message que imgur.sh n'est pas dans le chemin de recherche des exécutables de bash. Pourtant, dans les deux cas, j'ai bien indiqué le chemin complet du script. Bash n'est-il pas censé exécuté tous les script *.sh dès lors qu'ils sont définis comme étant exécutables ? Je n'y comprends plus rien ... d'autant que le script perl fonctionne très bien. (soupir d'agacement). Cordialement EDIT : Je m'aperçois que mon script fait appel à la fonction SED, ce qui explique peut-être pourquoi l'exécution du script ne peut pas s'effectuer. Or, SED est absent des repositories (dépôts ?) qui sont déclarés à jour et ne peut donc pas être installé. Ce qui est étrange, c'est qu'il y a un man pour SED. Dès lors, pourquoi fournir un man pour une programme qu'on ne peut pas installer ?
Modifié par Mimile le 22/03/2015 12:35 | |||||||
Astucien | Mimile, tu es déjà sous Bash quand tu ouvres un terminal depuis que tu as fais de Bash ton interpréteur de commandes par défaut. Alors, il n'est pas nécessaire de faire précéder ton script par le chemin complet vers Bash. Seulement /home/okapi/Scripts/imgur.sh devrait être suffisant. Au fait, qu'est ce que retourne la commande ls -l /home/okapi/Scripts/imgur.sh Et puis, si tu veux me montrer le contenu du script, je serais curieux de le voir. En ce qui concerne sed, il doit être installable via les ports s'il n'y a pas de version binaire pré-compilée. | |||||||
Astucien | Voici ce que donne ta première suggestion :
bad interpreter ? Pourtant /bin est bien dans le $PATH. La seconde :
Le script (pastebin) : http://pastebin.archlinux.fr/898765 Pour le surplus, pourrais-tu m'expliquer comment installer SED par les ports ? EDIT : Il semblerait que sous freeBSD, sed soit remplacé par gsed et il y a effectivement un port qui lui est consacré. J'ai lu sur un site que gsed était sed doté d'une fonction supplémentaire. Je l'ai installé et j'ai remplacé les trois opérations sed du script par gsed ... sans résultat.
Modifié par Mimile le 22/03/2015 14:27 | |||||||
Astucien | Je n'ai pas lu la totalité du script, mais je sais que la ligne numéro 1 #!/bin/bash doit être remplacée par #!/usr/local/bin/bash Au sein des distributions Linux, Bash est un composant de base du sytème et fait parti des binaires de la racine /bin. C'est l'interpréteur de commandes par défaut de plusieurs distributions. Sous FreeBSD, Bash est un programme utilisateur et ces derniers sont installés dans /usr/local/bin . Ce n'est pas un composant de base. C'est Csh qui est l'interpréteur de commandes par défaut et se trouve à la racine /bin. Modifié par Logicien le 22/03/2015 17:02 | |||||||
Astucien | Cher Paul, Voici enfin un résultat positif J'ai effectivement modifié la 1ère ligne du script comme tu l'as indiqué (#!/usr/local/bin/bash au lieu du #!/bin/bash) après avoir exécuté xhost+. J'ai également dû modifier les 3 opérations "sed" par "gsed". Pour éviter de devoir chaque fois exécuter xhost +, je l'ai intégré à mon script à son début et j'ai indiqué xhost - avant la fin. En ligne de commande, j'ai exécuté "/home/okapi/Scripts/imgur.sh". Aussitôt, mon dossier ~/Images s'est ouvert. J'en ai choisi une au hasard et cela m'en renvoyé :
Puis aussitôt après : Et les URL donnent : En grandeur normale (1ère URL) : Et son thumbnail (2ème URL) Ca marche très bien en ligne de commande mais si je transfère l'icône qui se trouve dans le dossier ~/Scripts sur le bureau, un double-clic sur celle-ci ne donne rien malgré que j'aie coché la case "est exécutable". Je pense que le simple transfert ne convient pas et il faudrait que j'utilise une méthode pour créer un "vrai" lanceur sur le bureau. J'ai lu sur un site qu'il suffisait de créer dans le dossier ~/Bureau (en fait : ~/Desktop) un fichier "quelconque.desktop" ; en l'occurrence imgur.desktop contenant :
Je l'ai transféré sur le bureau mais je rencontre un problème : quand je double-clique sur l'icône, j'ai en réponse :
Je ne sais pas ce que je dois indiquer à ce niveau. Une idée ? Merci d'avance et bonne nuit (il est 2:34 AM) chez moi et bonne fin de journée à toi. Amicalement, Modifié par Mimile le 23/03/2015 02:39 | |||||||
Astucien | Bonjour Mimile. Essaye d'ajouter: Type=Application Dans ton fichier.desktop Reivillo. Note: Pour Éditer le Fichier d'un Lanceur quelconque, sauf Dossier ( pour l'avoir comme Exemple ), Modifié par reivillo le 23/03/2015 08:24 | |||||||
Astucien | Salut Reivillo J'ai déjà essayé la solution que tu indiques (Type=Application). Quand je transfère l'icône de fichier imgur.desktop sur le bureau et que je clique dessus, il ne se passe rien sinon qu'une miniature de l'icône danse la danse de Saint-Gui pendant une dizaine de secondes sans afficher de message. Si je n'indique pas le Type, quand je clique sur l'icône, j'ai un message qui attire mon atention sur le fait qu'aucun Type n'est indiqué. J'ai vu quelque part qu'on pouvait indiquer, au lieu d'Application, Links et Relay. Quand je mets Links, message disant qu'il manque l'URL ... Je n'ai pas essayé avec Relay. Cela dit, est-ce qu'un script bash peut être considéré comme une application ? Je pense que le mot "application" fait référence aux différents logiciels qui apparaissent dans le menu K. Mais alors, que faut-il indiquer à Type ? ------------------------------------------------------------------------------------------------------ EDIT : PROBLÈME ENFIN RÉSOLU J'avais ajouté xhost + avant "cd /home/okapi/Images (voir le pastebin plus haut - ma réponse du 22.03.2015 - 13 h 36) dans mon script imgur.sh. Mon erreur a été de ne pas le mettre carrément avant la première ligne d'instructions ([ "`whoami`" != "root" ] && exec sudo -A ${0} ${@}) Erreur corrigée et icône opérationnelle (j'en ai profité pour empêcher le retour qui provoquait l'agaçante danse de Saint-Gui de la miniature de l'icône). Merci à tous et - évidemment plus particulièrement à Logicien - pour vos interventions. Cordialement EDIT-bis : accessoirement, à l'intention de ceux qui se lanceraient dans l'aventure freeBSD, je signale que pour que TOUT soit en français, il faut modifier le fichier (caché) /home/le_nom_de_l'user/.login.conf en supprimant les ## qui désactivent les lignes de code. Cela donne, chez moi :
J'ai mis lang=fr_BE.ISO8859-1 parce que je suis en Belgique. Pour la france, c'est évidemment "fr_FR.ISO8859-1" (ce qui est d'ailleurs indiqué d'office). Voilà.
Modifié par Mimile le 23/03/2015 11:22 | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|