Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Comprobar Instalación De Paquete
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Comprobar Instalación De Paquete 
 
¿Existe algún comando para comprobar si un paquete está o no instalado?
 



 
4octavio4 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comprobar Instalación De Paquete 
 
Si estás en Ubuntu o Debian usa esto:

aptitude show nombre_paquete | grep Estado

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comprobar Instalación De Paquete 
 
Muy buen día

yo le estoy siguiendo los pasos a Octavio al parecer, ya me lo he encontrado dos veces el día de hoy en estos temas mi duda es la misma el programa debe de comprobar si esta instalada una aplicación y definir en una variable texto si esta instalado o no.

el código algo así

PUBLIC ocrad AS String
PUBLIC tesseract AS String
PUBLIC gocr AS String

                     'Se comprueba la instalación de los tres motores
SHELL "aptitude show tesseract | grep Estado" TO tesseract
SHELL "aptitude show ocrad | grep Estado" TO ocrad
SHELL "aptitude show gocr | grep Estado" TO gocr


creo que hay problema pues a pesar de instalar las aplicaciones siempre me pide volver a instalar pues la verificación depende de estas instrucciones

probé en en una terminal aptitude show tesseract | grep Estado

malon@malon-desktop:~$ aptitude show tesseract | grep Estado
El programa «aptitude» puede encontrarse en los siguientes paquetes:
 * aptitude
 * aptitude-gtk
Pruebe: sudo apt-get install <paquete seleccionado>
malon@malon-desktop:~$ sudo aptitude show tesseract | grep Estado
[sudo] password for malon:
sudo: aptitude: command not found
malon@malon-desktop:~$
 por eso creo que esta instrucción no manda la información requerida por el programa

mi sistema es ubuntu 11.04 gambas 2.21

Marlon Perez
Mi nueva pasión UBuntu+gambas
 



 
marlon7106 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comprobar Instalación De Paquete 
 
Hola

Parece ser que "aptitude" (el gestor de paquetes) no viene preinstalado en Ubuntu Natty, así que tu programa deberá además chequear eso.

Para que el código que usas funcione, deberás instalar aptitude: sudo apt-get install aptitude

Otra forma de comprobar si un programa está instalado es mirar si existe su ejecutable, por ejemplo suponiendo que el ejecutable se llame tesseract:

which tesseract

...que devolverá la ruta donde se encuentra, y en caso contrario no devolverá nada. Entonces bastaría con hacer una simple comprobación para saber si está instalado usando la instrucción SHELL:

SHELL "which mi_programa" TO test

IF test THEN PRINT "Mi programa está instalado"


Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comprobar Instalación De Paquete 
 
En ubuntu yo utilizo esta función:
PUBLIC FUNCTION instalado(paquete AS String) AS Boolean
'Indica si un paquete de software está instalado en el sistema o no (Debian y derivados)

    DIM contenido AS String
    DIM n AS Integer

    SHELL "dpkg -l|grep " & paquete & " > /tmp/paq.txt" WAIT
    TRY contenido = File.load("/tmp/paq.txt")
    n = InStr(contenido, " " & paquete & " ")
    IF n > 0 AND Left(contenido, 2) = "ii" THEN 'si el paquete se desinstaló pero no completamente el paquete aparece, pero la línea empieza por rc
       RETURN TRUE
    ELSE
        RETURN FALSE
    ENDIF

END


Espero te sea útil.

Suerte
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comprobar Instalación De Paquete 
 
Buen día, muchas gracias por sus respuestas funcionan pero aun tengo algunos inconvenientes pero pero de eso se trata de crear un código exacto y libre de errores,,,, probé las instrucciones  y tuve estos resultados espero me puedan dar alguna explicación

ejecute las instrucciones directamente en una terminal para ver que resultados arrojaba esto después de instalar aptitude como me lo recomendaron

malon@malon-desktop:~$ aptitude show gocr | grep Estado
Estado: instalado

malon@malon-desktop:~$ aptitude show ocrad | grep Estado
Estado: instalado

malon@malon-desktop:~$ aptitude show tesseract | grep Estado
E: No se pudo localizar el paquete tesseract

hasta aqui un pequeño problema que no es precisamente del gambas pero tal vez me puedan dar una luz los tres programas están instalados desde el gestor de paquetes synaptic pero el ultimo no me lo detecta esta instrucción
 en gambas lo utilizo así

SHELL "aptitude show tesseract | grep Estado" TO tesseract

IF (tesseract = "Estado: instalado") THEN   'aqui nunca se cumple la condición pues SHELL "aptitude..... arroja otro valor a la variable tesseract
tipo[0].text = "TESSERACT"
operativo = TRUE
ENDIF

un segundo intento con otra instrucion

malon@malon-desktop:~$ which gocr
/usr/bin/gocr

malon@malon-desktop:~$ which ocrad
/usr/bin/ocrad

malon@malon-desktop:~$ which tesseract
/usr/bin/tesseract

aqui si arroja que los tres programas existen y muestra la ruta en gambas lo utilizo asi

SHELL "which tesseract" TO tesseract

IF (tesseract = "/usr/bin/tesseract") THEN   'aqui comparo la variable tesseract con la ruta que de antemano descubrí me arrojara el comando y no da resultado
tipo[0].text = "TESSERACT"
operativo = TRUE
ENDIF

porque no da resultado esta comparación? entonces envié la variable tesseract a un contenedor de texto para así conocer su valor y obtuve lo siguiente
/usr/bin/tesseract+   con el signo (+) quiero explicarles que me salio al final de la ruta una basurita o un tipo de texto desconocido que no lo puedo digitar y es como un cuadrado con cuatro figuras dentro muy pequeño equivale a un carácter y es el que no me permite hacer la comparación..    muchas gracias


Marlon Perez
Trabajando en lo que me gusta
 



 
marlon7106 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comprobar Instalación De Paquete 
 
Otra prueba

el código me quedo así

DIM contenido AS String
DIM n AS Integer

    SHELL "dpkg -l|grep tesseract > /tmp/paq.txt" WAIT
    TRY contenido = File.load("/tmp/paq.txt")
    n = InStr(contenido, "tesseract")        ********************************
    IF n > 0 AND Left(contenido, 2) = "ii" THEN '*******************si el paquete se desinstaló pero no completamente el paquete aparece, pero la línea empieza por rc
    Vtesseract = "Instalado"
    ENDIF

IF (Vtesseract = "Instalado") THEN
tipo[0].text = "TESSERACT"
operativo = TRUE
ENDIF

aquí el programa pas la verificación y muestra tesseract como instalado verifique el archivo temporal y contiene lo siguiente

ii  tesseract-ocr                         2.04-2.1                                   Command line OCR tool
ii  tesseract-ocr-dev                     2.04-2.1                                   Development files for the tesseract command line OCR tool
ii  tesseract-ocr-eng                     2.00-2                                     tesseract-ocr language files for English text
ii  tesseract-ocr-spa                     2.00-2                                     tesseract-ocr language files for Spanish text
ii  tesseract-ocr-vie                     2.01-2                                     tesseract-ocr language files for Vietnamese text

me podrían comentar el uso de las dos instrucciones marcadas ******************* pues me hago a la idea que con se verifica que el archivo no este vacio y segundo se busca que las primeras dos letras del contenido del archivo sean ii, estas dos me indican que esta instalado ? bien gracias de nuevo por sus respuestas

Marlon Perez gambas 2.21 Ubuntu 11.04
Programando antes que desayunar
 



 
marlon7106 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comprobar Instalación De Paquete 
 
Hola de nuevo

Hay dos cosas que deberías saber:

  • El paquete que implementa teseract se llama realmente "tesseract-ocr", por eso aptitude no lo encuentra por el nombre tesseract

  • El comando de SHELL "which tesseract" o cualquie otro es posible que te devuelva una cadena más un caraćter de nueva línea (el simbolito que ves en el textbox), por eso la comparación siempre es FALSE,
    Como en este caso concreto la salida del comando "which" siempre da un resultado de tipo cadena en caso de encontrar el programa instalado y siempre da un resultado NULL en caso contrario, no es necesario realizar una comparación explícita con la cadena que esperamos, sino simplemente asegurarnos que nuestra variable donde almacenamos el resultado del comando es TRUE o FALSE.


Para que lo sepas, en gambas si una variable de tipo string contiene una cadena, vale TRUE en una comparación y si está vacía será igual a FALSE.

Por eso en el ejemplo que puse lo hice así:


SHELL "which tesseract" TO test

IF test THEN
     ' test es igual a true porque contiene la ruta de tesseract
ELSE
    ' test está vacía, por tanto es false.
ENDIF
 


Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comprobar Instalación De Paquete 
 
Señor Jesús, Excelente apoyo, Me queda súper claro el tema, ya verificada la instalación del paquete ahora si a programar ... Gracias

Marlon Perez
Comunidad Gambas-es la mejor escuela que uno puede tener
 



 
marlon7106 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comprobar Instalación De Paquete 
 
Bueno este es un post viejito, pero me parece que merece la pena aportarle algo mas.
Desarrolle esta función para ver si un paquete esta instalado y en teoría funciona en "todas" las distros.
Si alguno tiene: Arch, Gentoo, OpenSuse, U otro y quiere verificar si funciona y mejorar este código, adelante.

Public Function PkgStat(strPkg As String) As String

  Dim strDistro As String
  Dim stxDistro As New String[]
  Dim intN As Integer
  Dim strCommand As String
  Dim strPkgStatus As String
  
  
 strDistro = Sysdata.Distro()
 strDistro = Replace(strDistro, "  ", " ")
 strDistro = String.LCase(strDistro)
 
 stxDistro.clear
 
 stxDistro = Split(strDistro, " ")
 
 For intN = 0 To stxDistro.Max
  
   Select stxDistro[intN]
     Case "arch", "fedora", "debian", "ubuntu", "opensuse", "gentoo"
       strDistro = stxDistro[intN]
       Case Else
         strDistro = "Otra"
   End Select
  
 Next
 
 Select strDistro
   Case "arch"
     strCommand = "pacman -Qs " & strPkg
     Case "fedora"
       strCommand = "rpm-qa | grep " & strPkg
       Case "debian"
         strCommand = "dpkg-query -W -f='${Status}\n' " & strPkg
         Case "ubuntu"
           strCommand = "dpkg-query -W -f='${Status}\n' " & strPkg
           Case "opensuse"
             strCommand = "zypper se -i " & strPkg
             Case "gentoo"
               strCommand = "emerge -pv " & strPkg
 End Select

  Shell strCommand & " 2>&1" To strPkgStatus

  Select strPkgStatus
    Case "install ok installed\n"
        strPkgStatus = "yes"  
      Case Else
        strPkgStatus = "no"  
  End Select
  
Return strPkgStatus

End
 

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Creación De Un Paquete De Instalación Guizans General 8 Jueves, 21 Abril 2016, 11:57 Ver último mensaje
Guizans
No hay nuevos mensajes Me Sale Nombre Autor Con Nombre Paquete En... v3ctor General 1 Martes, 28 Junio 2016, 14:41 Ver último mensaje
v3ctor
No hay nuevos mensajes Icono Xpm En Paquete De Instalación garvied General 0 Domingo, 03 Julio 2016, 16:55 Ver último mensaje
garvied
No hay nuevos mensajes Creando Un Paquete De Instalación Shell General 1 Viernes, 08 Julio 2016, 20:50 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron