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 07/06/2011, à 18:40

bishop.sad.clown

[ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

B'soir,
   J'suis sous natty mais le problème date déjà depuis maverick: gdebi quitte sans aucun message d'aucune sorte quelle que soit la réponse donnée à la question

Voulez-vous installer le paquet logiciel ? [o/N] :

root@bscc:/work/root#

Je n'ai trouvé aucune piste nulle part... En revenche la version graphique fonctionne parfaitement... Quelqu'un aurait-il une piste de recherche ?
@++ = þ

Dernière modification par bishop.sad.clown (Le 08/06/2011, à 21:54)


@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ

Hors ligne

#2 Le 07/06/2011, à 19:43

FRUiT

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Quel avantage de gdebi par rapport à aptitude ?


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#3 Le 07/06/2011, à 20:33

Bousky

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

C'est normal, « [o/N] » veut dire que le choix par défaut si tu n'entre rien est « N » : non. Au lieu de faire juste « entrer », il faut faire « o » puis « entrer » (ou juste « o », j'ai un doute). tongue

Dernière modification par Bousky (Le 07/06/2011, à 20:34)


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#4 Le 07/06/2011, à 20:45

bishop.sad.clown

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Bousky a écrit :

C'est normal, « [o/N] » veut dire que le choix par défaut si tu n'entre rien est « N » : non. Au lieu de faire juste « entrer », il faut faire « o » puis « entrer » (ou juste « o », j'ai un doute). tongue

Sans déconner ??? Sans vouloir paraitre désagréable, si je viens poster ici c'est que aucune des réponses logiques ne fonctionne... ni o ni oui ni y ni yes etc etc... = |

Quel avantage de gdebi par rapport à aptitude ?

Pas trouvé dans les man pages comment faire installer par aptitude un  .deb présent sur le disque ( l'équivalent de dpkg -i ) avec vérification des dépendances ... Ce pourquoi gdebi est censé avoir été conçu... J'vais relire les man pages au cas ou j'aurais pas bien compris quelque chose ^_^ 

...


@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ

Hors ligne

#5 Le 07/06/2011, à 21:29

Bousky

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

bishop.sad.clown a écrit :

Sans déconner ??? Sans vouloir paraitre désagréable

Justement, tu es particulièrement désagréable, et dans ce genre de cas il est inutile de prétendre le contraire.
J'ai l'habitude de regarder le nombre de posts des utilisateurs pour me faire une idée de leur ancienneté sous linux (je sais que ce n'est pas toujours très fiable, mais c'est toujours mieux que rien) afin d'adapter la réponse au niveau présumé de l'interlocuteur. Tu m'excuseras donc de t'avoir mis dans la catégorie des nouveaux utilisateurs, et donc d'avoir pensé que tu n'avais peut-être pas remarqué la différence de capitalisation entre le o et le n et que tu ais pu supposer que entrer signifiait systématiquement oui (ce qui n'est pas stupide non plus). Le fait que tu ais posté un exemple où tu as juste tapé entrer à contribué à m'induire en erreur, puisque si l'on tapes quelque-chose, il s'affiche.
Je vous prie donc humblement de bien vouloir m'excuser d'avoir perdu mon temps à essayer de vous aider.


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#6 Le 07/06/2011, à 21:44

bishop.sad.clown

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

@Bousky: Je suis d'accord sur une seule chose, j'ai mal formulé mon explication dans l'énoncé de mon problème... ^^ Pour le reste, si tu veux en débattre en MP ou par mail ou par ce que tu veux pas de souci... Je corrige l'énoncé de ce pas...


@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ

Hors ligne

#7 Le 08/06/2011, à 04:41

FRUiT

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

bishop.sad.clown a écrit :

Pas trouvé dans les man pages comment faire installer par aptitude un  .deb présent sur le disque ( l'équivalent de dpkg -i ) avec vérification des dépendances ... Ce pourquoi gdebi est censé avoir été conçu... J'vais relire les man pages au cas ou j'aurais pas bien compris quelque chose ^_^ 

...

Ah oui au temps pour moi j'y était pas.

On peut faire une simulation avec dpkg, ça pourrait peut-être aller ?

sudo dpkg --dry-run -i paquet.deb

Sinon, en prenant le problème dans l'autre sens, un sudo apt-get -f install devrait installer les dépendances après un dpkg -i infructueux.

Dernière modification par FRUiT (Le 09/06/2011, à 19:17)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#8 Le 08/06/2011, à 12:19

FRUiT

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Sinon ça marche avec gdebi -n paquet.deb

Mais, ça ne demande plus de confirmation à l'utilisateur.

Dernière modification par FRUiT (Le 08/06/2011, à 12:19)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#9 Le 08/06/2011, à 14:45

bishop.sad.clown

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Je viens de voir ça en effet ^^ Merci merci = )

Dernière modification par bishop.sad.clown (Le 08/06/2011, à 14:47)


@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ

Hors ligne

#10 Le 08/06/2011, à 19:34

FRUiT

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

De rian.

Un petit [Résolu]  s'il te plait.


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#11 Le 08/06/2011, à 19:47

bishop.sad.clown

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

J'suis pas fan de passer le sujet en résolu... l'option -n étant quand meme une option dangeureuse, je souhaiterais pouvoir retouver un usage normal de gdebi... Penses-tu que je m'entête inutilement ? = /


@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ

Hors ligne

#12 Le 08/06/2011, à 20:17

FRUiT

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Non du tout, mais bon comment t'aider quand le logiciel bugge manifestement ? Personnellement j'ai essayé contrairement à d'autres et j'ai le même comportement.

A la rigueur faudrait faire un bug report, ou plussoyer un déjà existant. Dans tous les cas ce thread ne remontera jamais jusqu'aux devs de gdebi ou kubuntu.

Et sinon la solution de simulation avec dpkg que j'ai proposé dans le post au dessus de l'option -n ne convient pas non plus ?

Dernière modification par FRUiT (Le 10/06/2011, à 14:14)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#13 Le 08/06/2011, à 21:53

bishop.sad.clown

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Juste remarque pour le retour aux devs... = /
          Je n'ai pas encore essayer essayé ta solution en passant par le simulation... Je teste ça ce soir sans faute... ^_^
                  Par contre j'ai jeté un oeil à l'executable gdebi:

 file /usr/bin/gdebi
/usr/bin/gdebi: a /usr/bin/python script text executable 

J'ai tout de même ouvert le fichier pour voir... Et je n'y connais rien en python... tant pis  = ( = þ

Allez je m'en vais tester ta solution et voir pour un rapport de bug...

¤ Ajout: J'ai lancé une recherche pour l'option --dry-run ( j'aime bien comprendre un minimum ce que je tape...^^ ) et j'ai pas vraiment trouvé d'éclaircissement... t'as un lien sous l'coude ?

Dernière modification par bishop.sad.clown (Le 08/06/2011, à 22:31)


@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ

Hors ligne

#14 Le 09/06/2011, à 19:13

FRUiT

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

man dpkg a écrit :

       --no-act, --dry-run, --simulate
              Faire tout ce qui doit être fait, mais n'écrire  aucune  modifica‐
              tion. On utilise cette option pour voir ce qui se passe sans modi‐
              fier quoi que ce soit.

              Assurez-vous  de  donner  l'option  --no-act  avant  le  paramètre
              action,  sinon  des résultats fâcheux sont probables. Par exemple,
              la commande dpkg --purge foo --no-act purge d'abord le paquet  foo
              et essaie ensuite de purger le paquet --no-act, même si vous comp‐
              tiez qu'elle ne ferait rien du tout.

Je pense que si tout se déroule bien dpkg renvoie 0 comme code de sortie, ou 1 ou plus s'il y a des problèmes. J'ai pas de dépendances insatisfaites pour tester actuellement...

Par contre du coup vaudrait mieux mettre le --dry-run avant le -i :

sudo dpkg --dry-run -i paquet.deb

Par exemple (pas testé) on pourrait faire un test du genre :

if dpkg --dry-run -i paquet.deb; then
    # lignes de code
else
    # dpkg a échoué, autres actions
fi

Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#15 Le 10/06/2011, à 12:43

bishop.sad.clown

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Dans le même registre d'idée mais avec gdebi et un petit script:
          1°: Edition de /usr/bin/gdebi:
                    - Commentez les ligne 106 à 111

#    msg =  _("Do you want to install the software package? [y/N]:")
#    print msg,
#    sys.stdout.flush()
#    res = sys.stdin.readline()
#    if res.lower().startswith(msg[-5]):
#        debi.install()

          2°: Création d'un script pour remplacer la fonction défectueuse. ( C'est un #! /bin/sh étant admis que je ne connais pas le python ):
                    - nano /usr/bin/Gdebi

#! /bin/sh

/usr/bin/gdebi $1
echo "Voulez-vous réellement installer $1 ? ( oui/NON )"
read CHOIX

case $CHOIX in
    oui) gdebi --n $1 ;;
      *) echo "Terminé..." && exit 0 ;;
esac

Voilà... J'ai pas mieux en stock à ce moment... ^_^ Mais au moins je suis en accord avec le [ Résolu ] = D

Par contre pour le rapport de bug,je ne l'ai toujours pas fait...  = þ


@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ

Hors ligne

#16 Le 10/06/2011, à 13:34

FRUiT

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Oui mais ton script posera la question même si le paquet n'est pas installable d'après ce que je lis.

De plus read a une option pour prompter l'utilisateur.

#!/bin/sh

/usr/bin/gdebi $1
[ $? -eq 0 ] || exit

read -p "Voulez-vous réellement installer $1 ? ( oui/NON )" CHOIX

case $CHOIX in
    oui) gdebi -n $1 ;;
      *) echo "Terminé..." && exit 0 ;;
esac

Dernière modification par FRUiT (Le 10/06/2011, à 13:35)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#17 Le 10/06/2011, à 13:45

bishop.sad.clown

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Euh... non... j'ai testé avec un paquet d'une version plus ancienne qu'une version installée il quitte avec $? à 1 et j'obtient:

/usr/bin/Gdebi getdeb-repository_0.1-1\~getdeb1_all.deb
Reading package lists... Done
Building dependency tree        
Reading state information... Done
Building data structures... Done 
Ce paquet ne peut pas être installé
A later version is already installed
Voulez-vous réellement installer getdeb-repository_0.1-1~getdeb1_all.deb ? ( oui/NON )
oui
Reading package lists... Done
Building dependency tree        
Reading state information... Done
Building data structures... Done 
Ce paquet ne peut pas être installé
A later version is already installed
zsh: exit 1     /usr/bin/Gdebi getdeb-repository_0.1-1\~getdeb1_all.deb

Donc ca roule... ^_^ Mais ta méthode à l'air plus propre... j'vais tester = D !

     Par contre je n'ai pas d'option -p dans les man pages de read... = /

 
$ man read > ./man_read && cat ./man_read

READ(2)                                              Linux Programmer's Manual                                              READ(2)



NAME
       read - read from a file descriptor

SYNOPSIS
       #include <unistd.h>

       ssize_t read(int fd, void *buf, size_t count);

DESCRIPTION
       read() attempts to read up to count bytes from file descriptor fd into the buffer starting at buf.

       If  count is zero, read() returns zero and has no other results.  If count is greater than SSIZE_MAX, the result is unspeci‐
       fied.

RETURN VALUE
       On success, the number of bytes read is returned (zero indicates end of file), and the file position  is  advanced  by  this
       number.   It  is  not  an  error  if  this number is smaller than the number of bytes requested; this may happen for example
       because fewer bytes are actually available right now (maybe because we were close to end-of-file, or because we are  reading
       from a pipe, or from a terminal), or because read() was interrupted by a signal.  On error, -1 is returned, and errno is set
       appropriately.  In this case it is left unspecified whether the file position (if any) changes.

ERRORS
       EAGAIN The file descriptor fd refers to a file other than a socket and has been marked  nonblocking  (O_NONBLOCK),  and  the
              read would block.

       EAGAIN or EWOULDBLOCK
              The  file  descriptor  fd  refers to a socket and has been marked nonblocking (O_NONBLOCK), and the read would block.
              POSIX.1-2001 allows either error to be returned for this case, and does not require these constants to have the  same
              value, so a portable application should check for both possibilities.

       EBADF  fd is not a valid file descriptor or is not open for reading.

       EFAULT buf is outside your accessible address space.

       EINTR  The call was interrupted by a signal before any data was read; see signal(7).

       EINVAL fd  is  attached  to  an  object  which is unsuitable for reading; or the file was opened with the O_DIRECT flag, and
              either the address specified in buf, the value specified in count,  or  the  current  file  offset  is  not  suitably
              aligned.

       EINVAL fd  was  created via a call to timerfd_create(2) and the wrong size buffer was given to read(); see timerfd_create(2)
              for further information.

       EIO    I/O error.  This will happen for example when the process is in a background process group, tries to  read  from  its
              controlling  tty,  and either it is ignoring or blocking SIGTTIN or its process group is orphaned.  It may also occur
              when there is a low-level I/O error while reading from a disk or tape.

       EISDIR fd refers to a directory.

       Other errors may occur, depending on the object connected to fd.  POSIX allows a read() that is  interrupted  after  reading
       some data to return -1 (with errno set to EINTR) or to return the number of bytes already read.

CONFORMING TO
       SVr4, 4.3BSD, POSIX.1-2001.

NOTES
       On  NFS  file systems, reading small amounts of data will only update the timestamp the first time, subsequent calls may not
       do so.  This is caused by client side attribute caching, because most if not all  NFS  clients  leave  st_atime  (last  file
       access  time)  updates to the server and client side reads satisfied from the client's cache will not cause st_atime updates
       on the server as there are no server side reads.  Unix semantics can be obtained by disabling client side attribute caching,
       but in most situations this will substantially increase server load and decrease performance.

       Many  file systems and disks were considered to be fast enough that the implementation of O_NONBLOCK was deemed unnecessary.
       So, O_NONBLOCK may not be available on files and/or disks.

SEE ALSO
       close(2), fcntl(2), ioctl(2), lseek(2), open(2), pread(2), readdir(2), readlink(2), readv(2), select(2), write(2), fread(3)

COLOPHON
       This page is part of release 3.27 of the Linux man-pages project.  A description  of  the  project,  and  information  about
       reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.



Linux                                                        2009-02-23                                                     READ(2)

Edit: L'ajout de ton test

 [ $? -eq 0 ] || exit 

  est effectivement plus propre... J'l'ai adopté... MERCI ^_^

Dernière modification par bishop.sad.clown (Le 10/06/2011, à 13:49)


@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ

Hors ligne

#18 Le 10/06/2011, à 13:55

FRUiT

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

C'est normal, read n'est pas une commande externe mais un builtin.

Il faut donc lire sa description dans man bash, ou dans ton cas plutôt man dash :

man dash a écrit :

read [-p prompt] [-r] variable [...]
The prompt is printed if the -p option is specified and the standard input is a terminal. Then a line is read from the standard input. The trailing newline is deleted from the line and the line is split as described in the section on word splitting above, and the pieces are assigned to the variables in order. At least one variable must be specified. If there are more pieces than variables, the remaining pieces (along with the characters in IFS that separated them) are assigned to the last variable. If there are more variables than pieces, the remaining variables are assigned the null string. The read builtin will indicate success unless EOF is encountered on input, in which case failure is returned.

Dernière modification par FRUiT (Le 10/06/2011, à 13:56)


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#19 Le 10/06/2011, à 14:02

bishop.sad.clown

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Merci Merci ^_^ Du coup j'ai allégé avec tes deux astuces, c'est toujours ca de gagné en clareté... = )  et je vais bouquiner un peu les manpages de dash... J'ai quelques petits scripts qui je pense vont se faire liftés grace à tes éclaircissements... ^_^ Très content de m'être réinscrit sur ce forum je suis...


@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ

Hors ligne

#20 Le 10/06/2011, à 14:03

FRUiT

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

De rian ^^


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#21 Le 30/06/2011, à 13:30

skaa

Re : [ Résolu ] gdebi en ligne de commande ne fait rien de rien... = /

Je pense avoir trouvé l'origine du problème.

Dans /usr/bin/gdebi:

msg =  _("Do you want to install the software package? [y/N]:")
print msg,
sys.stdout.flush()
res = sys.stdin.readline()
if res.lower().startswith(msg[-5]):
    debi.install()

Pour vérifier que l'utilisateur dit "oui" à l'installation, voici le test qui est fait:
- on prend la chaine "msg"
- on prend le 5ème caractère en partant de la fin ('y' donc)
- on prend la chaine tapée par l'utilisateur et on la met en minuscule
- on regarde si cette chaine commence par 'y'

Donc qu'on tape y, yes, YeS, yoyo ou encore yNoooo, ça va fonctionner.... dans la version anglaise.

Le truc c'est que la chaine 'msg' est traduite (avec le module gettext) et que dans la traduction française, ils se sont chiés et ont rajouté un espace en trop. Du coup le 5ème caractère en partant de la fin est un "/".... et pour une raison que je n'ai pas encore eclairci mais qui doit trouver une explication, ça ne fonctionne pas quand on tape "/" lors de la question.

Une façon simple de corriger ça est de virer le traduction de cette phrase.
Il suffit de remplacer:

msg =  _("Do you want to install the software package? [y/N]:")

par

msg =  "Do you want to install the software package? [y/N]:"

De cette façon, la question sera posée en anglais et la réponse fonctionnera.

Enjoy

Hors ligne