Um tutorial simples para criar e instalar seu próprio pacote deb.
Nada além de Debian, Ubuntu ou qualquer sistema operacional baseado em Debian
O aplicativo Mypackage abrirá o site oficial do Ubuntu quando executado.
Nomenclatura da nossa pasta mypackage_1.0_all
: package-name_version_architecture
.
Nome do pacote: mypackage
Versão: 1.0
Arquitetura: pode ser all
ou um subconjunto de arquiteturas suportadas
Arquitetura de pacote bruto:
. └── mypackage_1.0_all # Pasta principal do pacote ├──DEBIAN │ ├── control # Arquivo com as informações principais do pacote │ ├── postinst # Script em execução após a instalação │ └── preinst # Script em execução antes da instalação ├── optar │ └── mypackage # Pasta incluindo nosso software │ └── open_link.sh # Script abrindo o navegador para ubuntu.com └── usr └── compartilhar ├── aplicativos │ └── mypackage.desktop # Arquivo com informações do aplicativo no inicializador └── ícones └── mypackage.xpm # Ícone do aplicativo Launcher
Mais sobre o arquivo DEBIAN/control
:
Package: mypackage
Version: 1.0 # package version
Architecture: all # our package sums up to a bash script and this is POSIX
Essential: no # essential to the system ?
Priority: optional # install order in package management system
Depends: curl,zenity # comma-separated dependency packages (,)
Maintainer: flavienbwk
Description: A sample package...
Embora existam maneiras de instalar arquivos deb sem sudo, a maioria dos pacotes deb são projetados para serem instalados em todo o sistema. Isso significa que os scripts preinst e postinst ou qualquer outro binário incluído no arquivo podem ser executados sem qualquer restrição no sistema (consulte Pacotes Snap para obter uma alternativa). Verifique três vezes seus scripts e tenha cuidado ao compartilhar para não quebrar o computador de alguém.
Construir
dpkg-deb --build ./mypackage_1.0_all
Instalar
sudo gdebi -n ./mypackage_1.0_all.deb # teste (requer gdebi-core)sudo dpkg -i ./mypackage_1.0_all.deb # install
Nota Desinstalar com
sudo apt autoremove mypackage
Você deverá ver Mypackage em seu inicializador:
A primeira opção é a mais fácil: podemos instalar pacotes localmente.
Crie uma pasta onde nosso repositório estará localizado e mova nosso pacote .deb
para dentro
mkdir -p ./mirror/pool cp ./mypackage_1.0_all.deb ./mirror/pool/
Crie o arquivo de índice Packages
cd ./espelho dpkg-scanpackages -m ./pool > Pacotes
Adicione o diretório às fontes do seu sistema
echo "deb [confiável = sim] arquivo:/caminho/para/repositório/espelho /" | sudo tee /etc/apt/sources.list.d/mypackage.list
Atualize a definição e instalação dos seus pacotes
atualização do sudo apt sudo apt instalar meu pacote
Os repositórios instalados localmente podem então ser servidos a partir de um servidor Apache simples em sua própria máquina.
Você pode optar por criar seu Personal Package Archive (PPA), hospedado em , e então acessível a todos com um simples comando add-apt-repository ppa:<repository_name>
.
Se você deseja que seu pacote seja publicado nos repositórios universo/multiverso do Ubuntu, pode ser complicado, pois você deve obter a aprovação de um MOTU. Quer publicá-lo em main ? São muitas condições a cumprir, incluindo critérios de segurança e compromisso com a manutenção.
Pacotes META são pacotes que instalam nada além de uma lista de dependências.
É assim que você pode instalar um desktop inteiro por meio de um pacote.
APT é o sistema tradicional de gerenciamento de pacotes usado pelo Debian e seus derivados (incluindo o Ubuntu). Ele estreou em 1998 e usa pacotes .deb
.
Snap, lançado pela Canonical em 2014, é um gerenciador de pacotes mais recente projetado para fornecer distribuição mais fácil de pacotes em diferentes distribuições Linux. Ele agrupa dependências dentro de cada pacote .snap
, levando a tamanhos de pacotes maiores, mas atenuando o "inferno das dependências". Isto é útil especialmente em sistemas offline.
As principais diferenças são que os pacotes snap se concentram na compatibilidade e autocontenção entre distribuições, segurança potencialmente melhor por meio de sandbox de pacotes e atualizações automáticas. O APT, por outro lado, depende de bibliotecas de todo o sistema, o que torna os pacotes menores, mas pode causar problemas de dependência.