|
Página 1 de 2
|
Instalador De Paquetes En Sistemas Debian
Autor |
Mensaje |
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Instalador De Paquetes En Sistemas Debian
¿Quién no ha apoyado sus programas con aplicaciones externas? Que si ps2pdf, que si wkhtmltopdf, que si firefox, etc. etc.
¿Cómo asegurarnos que el sistema tiene instalados los paquetes que necesita nuestro programa?
(Sí ya sé que modificando el .deb y añadiéndolos a las dependencias se puede hacer más limpio, etc. etc., pero a la velocidad que yo envío versiones nuevas a mis clientes, me pasaría el día modificando .debs...)
Hace tiempo hice una rutina que me hacía esa comprobación e instalación en una aplicación, pero cada programa nuevo me tenía que poner a reescribirla etc.
Al final me he cansado de eso y he hecho un formulario genérico para instalar los programas que nuestra aplicación necesite.
Aquí tenéis el código en un ejemplo:
Instalador de paquetes para debian y derivados
El meollo está, es simple en el código del botón Instalar del fMain del ejemplo. Se trata poner en el Tag del formulario instalador una tabla de dos dimensiones con los paquetes que queremos y sus descripciones. Algo así como esto:
DIM f AS NEW instalador
f.tag = NEW variant[]
f.tag.add(["sqlite3", "Sqlite3.- Gestor de bases SQLite (Obligatorio)"])
f.tag.add(["sqliteman", "Sqliteman.- Herramienta para gestionar bases SQLite (optativo) "])
f.tag.add(["wkhtmltopdf", "wkhtmltopdf.- Herramienta de conversión de ficheros html a .pdf"])
f.tag.add(["catdoc", "catdoc.- Herramienta de conversión de ficheros .xls"])
f.showmodal
Espero que os sea útil.
Suerte
=================== No podemos regresar
última edición por shordi el Lunes, 28 Febrero 2011, 19:46; editado 4 veces
Editado por shordi, Domingo, 27 Febrero 2011, 11:51: Edito para colgarlo con .zip, que chrome aburre con tar.gz
|
#1 Domingo, 27 Febrero 2011, 11:47 |
|
|
GNUXDAR
Usuario
Registrado: Enero 2011
Mensajes: 17
Edad: 34 Ubicación:
|
Re: Instalador De Paquetes En Sistemas Debian
Esto verifica si nuestro sistema tiene instalado los paquetes y si no tiene los que necesita los instala para nustro proyecto gambas??
tendria que agregar un Button para la instalacion en tal caso. Muy interesante
|
#2 Miercoles, 02 Marzo 2011, 15:57 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Instalador De Paquetes En Sistemas Debian
Los verifica y los instala. Tiene un botón guay que dice Instalar y un textArea donde te cuenta cómo le ha ido. Crea un casilla de verificación y una etiqueta de información para cada paquete...
Falta exteriorizar la cadena de instalación, que ahora utiliza dpkg para sistemas debian, de forma que pueda ser utilizado por yum o cualquier otro instalador de otro sistema.
Se podría poner en un fichero de configuración de Settings, de manera que detectase qué distribución se usa y asociase el instalador para cada sistema... Pero yo sólo utilizo Debian y derivados y me da pereza añadir eso. Os lo dejo a quien le interese el asunto.
=================== No podemos regresar
|
#3 Miercoles, 02 Marzo 2011, 17:24 |
|
|
sasogu
Usuario
Registrado: May 2011
Mensajes: 48
Edad: 51 Ubicación: Alicante
|
Re: Instalador De Paquetes En Sistemas Debian
Muchas gracias por compartir esta aplicación, era justo lo que necesitaba, soy super nuevo en gambas y en la programación, he aterrizado de rebote en este mundo y estoy encantado.
Bueno al grano, estoy utilizando la aplicación para aprender, así que digamos que la he destrozado pero espero ir mejorándola xDD estoy aprendiendo muchas cosas muy rápido pero hay muchas más que se me escapan, todos los manuales que encuentro son para personas que ya tienen conocimientos básicos de programación y en mi caso parto de cero...
en fin, que si alguien le quiere pegar un vistazo puede hacerlo aquí https://code.launchpad.net/~edutictac/+junk/esasyinstall
y si lo quiere instalar lo puede hacer desde aquí https://launchpad.net/~edutictac/+archive/utilitats
Por último agradecer encarecidamente a shordi haber compartido la aplicación.
Saludos
|
#4 Jueves, 02 Junio 2011, 22:31 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Instalador De Paquetes En Sistemas Debian
De nada, que para eso estamos por aquí, supongo.
De todas formas creo necesario decir que la integración de ese módulo de instalación de paquetes, me trajo más problemas que alegrías. Al final comprendí que era un poco el reinventar la rueda, una rueda que ya estaba hecha y muy bien hecha.
Por tanto, decidí que la mejor manera de asegurarte que un paquete que se necesita para tu programa esté instalado, es agregarlo al .deb como dependencia. Investigando un poquito hice un script que hace ese trabajo.
Lo puedes ver aquí http://foro.gambas-es.org/viewtopic.php?f=5&t=1598
Desde que lo uso no he vuelto a tener ningún problema. Lo que hago es crear un archivo de texto con las dependencias que quiero y siguiendo la sintaxis que describo en el otro hilo, cada vez que genero el paquete, ejecuto el script y todo listo para su distribución.
Por otra parte es cierto que con éste sistema de instalar paquetes, puedes hacer un programa modular a elección del usuario, si quiere tal funcionalidad, instala tal paquete, si no la quiere, no lo instala y listo, cosa que con el script no es posible.
En fin, para gustos los colores.
Suerte
=================== No podemos regresar
|
#5 Viernes, 03 Junio 2011, 08:40 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Instalador De Paquetes En Sistemas Debian
Por cierto sasogu, ¿podrías añadir un enlace a un fichero comprimido con los fuentes?, que bajarlos de uno en uno es un peñazo total.
Gracias.
Edito: Ya lo he encontrado. No te molestes.
=================== No podemos regresar
última edición por shordi el Viernes, 03 Junio 2011, 09:01; editado 1 vez
|
#6 Viernes, 03 Junio 2011, 08:56 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Instalador De Paquetes En Sistemas Debian
Jejeje, le acabo de echar un ojo.
Mola.
No se me había ocurrido que mi modesto instalador podía dar para tanto...
La potencia del software libre es genial.
Como dijo no sé quién: Camino sobre hombros de gigantes...
Suerte
=================== No podemos regresar
|
#7 Viernes, 03 Junio 2011, 09:07 |
|
|
sasogu
Usuario
Registrado: May 2011
Mensajes: 48
Edad: 51 Ubicación: Alicante
|
Re: Instalador De Paquetes En Sistemas Debian
Jejeje, le acabo de echar un ojo.
Mola.
No se me había ocurrido que mi modesto instalador podía dar para tanto...
La potencia del software libre es genial.
Como dijo no sé quién: Camino sobre hombros de gigantes...
Suerte
Me alegra que te guste, me siento alagado de programar no tengo ni idea pero como soy maestro si sé lo que necesitan las personas que empiezan con linux en los centros...
ya tengo un montón de ideas, ahora necesito saber cómo hacerlas xDD
Seguimos en contacto
última edición por sasogu el Viernes, 03 Junio 2011, 22:42; editado 1 vez
|
#8 Viernes, 03 Junio 2011, 13:07 |
|
|
sasogu
Usuario
Registrado: May 2011
Mensajes: 48
Edad: 51 Ubicación: Alicante
|
Re: Instalador De Paquetes En Sistemas Debian
Hola de nuevo, la aplicación sigue creciendo y ahora quiero implementar una funcion que copie la lista de todas las aplicaciones instaladas en un sistema para instalarlas en otro
similar
las ordenes en consola son
dpkg –get-selections > AppsInstaladas.txt
Si queremos reinstalarlos todos de nuevo en Ubuntu el comando sería:
sudo apt-get install dselect
sudo dpkg –set-selections < AppsInstaladas.txt
sudo apt-get -u dselect-upgrade
La parte de conseguir el listado ya la tengo, ahora necesito poder restaurar con los tres últimos comandos, lo estoy intentando así
pr = SHELL "echo " & Clave.Text & " |sudo -S apt-get -y install " & instala FOR READ
funciona perfectamente, pero cuando hago
pr = SHELL "echo " & Clave.Text & " |sudo -S dpkg --set-selections < " & directorio FOR READ
me dice error de contraseña :(( y no lo entiendo porque el código es prácticamente igual sólo cambia apt-get por dpkg... en fin, estoy atascado alguna idea?
Gracias
última edición por sasogu el Sabado, 25 Junio 2011, 12:45; editado 1 vez
|
#9 Sabado, 25 Junio 2011, 12:44 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Instalador De Paquetes En Sistemas Debian
Sudo te da capacidades de super user durante un tiempo (no recuerdo si diez minutos o así). Si ejecutas otro sudo dentro de ese tiempo no te vuelve a pedir la contraseña. Tal vez al "inyectarle" la contraseña innecesaria no le venga bien....
Habría que ver el código completo. Supongo.
Por cierto, ambiciosa cuestión planteas, aunque totalmente lógica. No se me había ocurrido...
=================== No podemos regresar
|
#10 Sabado, 25 Junio 2011, 16:08 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|