¿Cómo creo un PPA?

113

¿Cómo creo mi propio PPA personalizado para compartir con la comunidad de Ubuntu? Intento crear mi propio conjunto de paquetes personalizado y me gustaría compartirlo con la comunidad.

    
pregunta Jebeld17 24.10.2011 - 17:54

3 respuestas

86

Al usar un Archivo de paquetes personales ( PPA ), puede distribuir software y actualizaciones directamente a los usuarios de Ubuntu. Crea tu paquete fuente, súbelo y Launchpad construirá binarios y luego los alojará en tu propio repositorio apt.

Aquí hay una explicación detallada .

    
respondido por el hhlp 24.10.2011 - 18:01
74

Cómo crear un archivo .deb

Este es un tutorial sobre cómo crear un archivo .deb básico a partir de un script de muestra determinado. En este tutorial primero creamos un programa de ejemplo en bash que solo muestra 'HOLA DEL PROGRAMA'. Luego creamos un archivo de control para el programa con el fin de crear un instalador Debian. Finalmente, se empaquetan en un archivo .deb .

Pasos:

  1. crear un programa de ejemplo en bash

    mkdir "$HOME/create_deb/pgmdir"
    gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
    

    pegue el siguiente código en él

    #!/bin/bash
    echo 'HELLO FROM PROGRAM' | zenity --text-info 
    
  2. Hacer el programa ejecutable

    chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
    
  3. Crear archivo de control para el paquete Debian

    Cree un archivo denominado control dentro de la carpeta DEBIAN

    mkdir "$HOME"/create_deb/DEBIAN
    gedit "$HOME"/create_deb/DEBIAN/control
    

    y pegue los siguientes detalles

    Package: hellodeb
    Version: 0.1
    Architecture: all
    Maintainer: totti
    Installed-Size: 6
    Depends: zenity, bash
    Section: testing
    Priority: optional
    Homepage: http://askubuntu.com
    Description: This is my first debian package.
     Guided by Totti Torvalds.
     In Description new line start with a space.
    

    Puede editar los contenidos si lo desea. Obtenga más información sobre el formato de este archivo aquí y aquí .

  4. Crear el script postinst , que se ejecuta inmediatamente después de la instalación del paquete

    gedit "$HOME"/create_deb/DEBIAN/postinst
    

    luego pegar

    #!/bin/sh
    set -e
    echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
    

    y hacerlo ejecutable

    chmod +x "$HOME/create_deb/DEBIAN/postinst"
    
  5. Crear el script prerm , que se ejecuta antes de la eliminación del paquete

    #!/bin/sh
    set -e
    echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
    

    y hacerlo ejecutable

    chmod +x "$HOME/create_deb/DEBIAN/prerm"
    
  6. Crear estructura de paquetes y copiar programas, datos, etc.

    Crea una estructura de tus programas instalados y sus datos. En este ejemplo, colocamos el archivo en /bin .

    mkdir -p "$HOME"/create_deb/bin
    cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
    
  7. Cree el archivo .deb .

    dpkg-deb --build "$HOME"/create_deb .
    

    El . nombrará automáticamente el archivo .deb con versión, arco, etc. O su nombre personalizado

    dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
    

    O si crea el archivo .deb con

    debuild -k'your GPG key here' -S
    

    luego puedes subirlo a Ubuntu Launchpad con

    dput ppa:<lp-username>/<ppa-name> packet-source.changes
    

    como se describe aquí (fuente: crear un paquete .deb a partir de scripts o binarios )

  8. Instala el paquete .deb recién creado. Puede abrirlo con software-center pero es posible que no le permita instalarlo. Así que recomiendo usar gdebi package manager.

    sudo apt-get install gdebi
    
    gdebi "$HOME"/create_deb/hellodeb.deb
    

    Ahora puedes instalarlo. Durante la instalación, debería ver un diálogo de gtk

      

    Instalación del programa: zenity_hello.sh ......

  9. Después de instalar, abra una terminal y escriba zenity_hello . Si el programa está instalado correctamente y todo está bien, debería ver un diálogo de Gtk

      

    HOLA DEL PROGRAMA

  10. Eliminar paquete

    sudo apt-get remove zenity_hello
    

Publica tu repositorio en 2 minutos

Como el OP quiere una forma simple de publicar sus paquetes, le doy un truco fácil.

requisito: dropbox (o cualquier otro servicio, por ej. github ) cuenta con una carpeta pública.

  1. Cree una carpeta dentro de su carpeta pública-Dropbox donde coloca sus archivos * .deb:

    mkdir ~/Dropbox/Public/deb-packages  
    

    o crea esa carpeta en cualquier otro lugar y pon un enlace simbólico en tu carpeta pública:

    mkdir ~/deb-packages
    cd ~/Dropbox/Public
    ln -s ~/deb-packages/ deb-packages
    
  2. Vaya a esa carpeta y cree una secuencia de comandos que, cuando se ejecute, cree Packages.gz, que contenga toda la información necesaria sobre sus deb-packages. crear:

    gedit import.sh  
    

    pon esto:

    #!/bin/bash
    dpkg-scanpackages . /dev/null |gzip > Packages.gz
    

    hazlo ejecutable:

    chmod  x import.sh
    
  3. Copie algunos archivos * .deb en la carpeta. Podría ser tuyo o alguno que no esté disponible a través de otros repositorios. Luego vaya a la Carpeta y ejecute el script que ponemos allí:

    cd ~/deb-packages/ 
    ./import.sh
    

    Eso debería crear el llamado Packages.gz Archivo, que busca saber qué Paquetes se encuentran en este repositorio.

Eso es todo

Ahora, espere a que Dropbox sincronice la carpeta y tome la URL pública del Packages.gz . Debería verse más o menos así:

http://dl.getdropbox.../Packages.gz

Deshazte del final de ese enlace, ponle más palabras y ahora puedes usar y completar la siguiente línea para la lista sources.list:

deb http://dl.getdropbox.../deb-packages ./

Eso es lo que tienes tu propio repositorio de Deb en ejecución. Siempre sincronizado localmente, pero disponible para cualquier persona, en cualquier momento y en cualquier lugar.

NOTA: dpkg-scanpackages está disponible de dpkg-dev
referencia

    
respondido por el totti 09.07.2014 - 13:16
2

Necesitarás una cuenta Launchpad.net para crear un PPA. Simplemente haga clic en su usuario en Launchpad (haga clic en su nombre en la esquina superior izquierda) y cree un PPA. Es posible que primero tenga que firmar el Código de conducta y tener una clave GPG registrada en su cuenta.

    
respondido por el GTRsdk 24.10.2011 - 18:03

Lea otras preguntas en las etiquetas