¿Cómo creo mi propio PPA personalizado para compartir con la comunidad de Ubuntu? Estoy tratando de crear mi propio conjunto de paquetes personalizados y realmente me gustaría compartirlo con la comunidad.
¿Cómo creo mi propio PPA personalizado para compartir con la comunidad de Ubuntu? Estoy tratando de crear mi propio conjunto de paquetes personalizados y realmente me gustaría compartirlo con la comunidad.
Respuestas:
Usando un archivo de paquete personal ( PPA ), puede distribuir software y actualizaciones directamente a los usuarios de Ubuntu. Cree su paquete fuente, cárguelo y Launchpad creará binarios y luego los alojará en su propio repositorio apt.
Aquí hay una explicación detallada .
Este es un tutorial sobre cómo crear un archivo .deb básico a partir de un script de muestra dado. En este tutorial primero creamos un programa de muestra en bash que solo muestra 'HOLA DEL PROGRAMA'. Luego creamos un archivo de control para el programa con el fin de hacer un instalador de Debian. Finalmente se empaquetan en un .deb
archivo.
crear un programa de muestra 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
Hacer el programa ejecutable
chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
Crear archivo de control para el paquete debian
Hacer un archivo llamado control
dentro de la carpetaDEBIAN
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 el contenido si lo desea. Lea más sobre el formato de este archivo aquí y aquí .
Crear postinst
script, 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"
Crear prerm
script, que se ejecuta antes de eliminar el paquete
#!/bin/sh
set -e
echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
y hacerlo ejecutable
chmod +x "$HOME/create_deb/DEBIAN/prerm"
Realice la estructura del paquete y copie programas, datos, etc.
Cree una estructura de sus programas instalados y sus datos. En este ejemplo ponemos el archivo en /bin
.
mkdir -p "$HOME"/create_deb/bin
cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
Construya el archivo .deb .
dpkg-deb --build "$HOME"/create_deb .
El .
nombre automático del .deb
archivo 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
entonces 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 )
Instale el .deb
paquete recién creado . Puede abrirlo software-center
pero puede que no le permita instalarlo. Así que recomiendo usar el gdebi
administrador de paquetes.
sudo apt-get install gdebi
gdebi "$HOME"/create_deb/hellodeb.deb
Ahora puedes instalarlo. Durante la instalación, debería ver un diálogo gtk
Instalando el programa: zenity_hello.sh ......
Después de la instalación, abra una terminal y escriba zenity_hello
. Si el programa se instaló correctamente y todo está bien, debería ver un diálogo de GTK
HOLA DEL PROGRAMA
Eliminando paquete
sudo apt-get remove zenity_hello
Como el OP quiere una manera simple de publicar sus paquetes, estoy dando un truco fácil.
requisito: dropbox (o cualquier otro servicio, por ejemplo github ) cuenta con una carpeta pública.
Cree una carpeta dentro de su Carpeta pública de Dropbox donde coloque sus archivos * .deb:
mkdir ~/Dropbox/Public/deb-packages
o cree esa carpeta en otro lugar y coloque un enlace simbólico en su carpeta pública:
mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages
Vaya a esa carpeta y cree un script que, cuando se ejecute, cree los Paquetes.gz, que contiene toda la información necesaria sobre sus paquetes de deb. crear:
gedit import.sh
pon esto en esto:
#!/bin/bash
dpkg-scanpackages . /dev/null |gzip > Packages.gz
hazlo ejecutable:
chmod x import.sh
Copie algunos archivos * .deb en la carpeta. Podría ser el suyo o algunos que no están disponibles 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 archivo Packages.gz , que apt busca para saber qué paquetes se encuentran en este repositorio.
Ahora, espere a que Dropbox sincronice la carpeta y tome la URL pública dePackages.gz
. Debería verse más o menos así:
http://dl.getdropbox.../Packages.gz
Deshazte del final de ese enlace, ponle algunas palabras más y ahora puedes usar y completar la siguiente línea para las fuentes.list:
deb http://dl.getdropbox.../deb-packages ./
Eso es todo, tienes tu propio repositorio de Deb funcionando. Siempre sincronizado localmente, pero disponible para cualquier persona, en cualquier momento y en cualquier lugar.
NOTA: dpkg-scanpackages
está disponible como dpkg-dev
referencia
releases/
consulte github.com/rubo77/mouse-speed/blob/master/release/…
debuild -us -uc -k'your GPG key here'
, puede cargarlo dput ppa:<lp-username>/<ppa-name> packet-source.changes
en Launchpad como se describe aquí (fuente: crear un paquete .deb a partir de scripts o binarios )
debuild -k'your GPG key here' -S
porque Launchpad creará el archivo deb (si no se rechaza) - qué ¿Habría sido el `-us -uc`?