Outra maneira de fazer o seu Script, que agora já podemos chamar de programa, ser distribuído para amigos que tenham outras distros diferentes da
sua, é criando uma versão em DEB.
Como eu demostrei na última página, fazer um pacote RPM ou DEB, vai garantir que a distro do seu amigo tenha o seu programa completamente
funcional, mesmo que o sistema dele não tenha os programas usados pelo seu Script.
Assim, como fizemos um pacote RPM, a maneira de criar um pacote DEB é bem semelhante, mas com algumas diferenças. Um ponto que vale
expressar também, é que você não precisa estar em um ambiente
DEB para criar um pacote DEB, ou em um ambiente RPM, para criar um RPM.
Para esclarecer aos novatos que não entenderam meu último parágrafo, ambiente DEB quer dizer que o padrão da distribuição é instalar pacotes DEB,
e a mesma coisa para RPM.
Por exemplo, o PCLinuxOS usa o RPM, então todos os seu repositórios contém pacotes RPM. Já o Ubuntu, usa o DEB, por isso seus repositórios só tem
pacotes DEB.
As mais conhecidas distros em DEB são
Debian,
Ubuntu,
Knoppix,
Kurumim,
Damn Small
Linux (DSL).
Os mais conhecidos do lado RPM são:
Red Hat,
Fedora,
PcLinuxOS,
Mandriva e um que não vem
de uma base RPM, porém implementa o RPM como padrão é o
SUSE (SUSE vem do
Slackware).
Vamos ao ponto principal, criando um pacote DEB.
Caso você pulou o pacote RPM porque DEB interessa mais a você, no passo anterior, juntamos todos os arquivos usados pelo nosso programa em uma
pasta, você deve fazer o mesmo no terminal com os comandos:
mkdir -p debian/DEBIAN
$ cd debian
$ mkdir -p usr/local/bin
$ mkdir -p usr/share/applications
$ mkdir -p opt/Ps3/icons
$ cp /usr/share/applications/Ps3.desktop usr/share/applications/
$ cp /usr/local/bin/Ps3.sh usr/local/bin/
$ cp /opt/Ps3/icons/*.png opt/Ps3/icons/
$ cd ~/
Só para atualizar, quem pulou direto para esta página. Volte à página anterior e siga as instruções para criar o Script “postisntall.sh”, salve ele em:
“opt/Ps3/bin” e chame-o ou coloque em “debian/DEBIAN” como: postinstall.
você não deve renomear esse arquivo com outro nome.
Agora, para checar se tudo está no local certo, digite:
clear
$ find debian
Você vai ver a lista com todos os diretórios e o que eles têm dentro. Todos os arquivos estão no lugar certo, vamos à parte mais importante.
Usando o seu editor de texto preferido, crie o arquivo “control” dentro da pasta “debian/DEBIAN”. No meu caso, eu uso o KWrite:
kwrite ~/debian/DEBIAN/control
Agora, vou escrever as informações do meu programa assim:
Package: Ps3-video
Version: 1.0-1
Section: Video
Priority: optional
Architecture: all
Depends: bash (>= 2.05a-11), zenity (>= 2.32.1-3), awk, mencoder (>= 4.4.1-0), sed (>= 3.02-8), grep (>= 2.4.2-3), sox (>=
14.3.0-5), lame
(>= 3.98-2), libxvidcore4 (>= 1.2.2-2)
Maintainer: Mauricio Luis de Medeiros <jesusmlmph@gmail.com>
Description: Ps3-video
Convert almost all kind of video to avi playable on PS3 console.
- Package: é o nome do seu programa. As demais coisas você já sabe oque e só de olhar né?
- Architeture: seria o tipo de Hardware que o seu programa vai rodar, 32bits | 64bits. Algum processador que não seja Intel ou AMD... como no
meu caso, trata-se de um Script que pode rodar independente da arquitetura do Hardware, eu coloquei: all (todas).
- Depends: é a mesma coisa do que o Requires do pacote RPM. As dependências do seu programa, quais os programas e bibliotecas externas que
ele usa, assim quando o seu amigo instalar seu programa, se ele não tem algum dos programas necessários, ou o aplicativo de instalação vai fazer o
download e instalar automaticamente, ou ele vai indicar qual o programa que está faltando e pedir para instalar ele primeiro. Isso depende de distro
para distro.
- Description: é a descrição que vai aparecer quando a pessoa vai instalar ou atualizar seu programa, ela verá no Synaptic.
Outra coisa importante, no final do arquivo “control”, você deve deixar 2 linhas vazias apertando o ENTER.
Por que? Eu não sei... Creio que seja para o programa que cria o arquivo DEB reconhecer que esse é o final do arquivo.
Depois de ter salvo o arquivo em seu devido lugar, vamos ao comando mágico para a criação do pacote:
Dando a correta permissão para todos os arquivos:
find debian/ -type d | xargs chmod 755
Criando o pacote como Root:
sudo dpkg-deb --build debian Ps3-1.0-1.all.deb
Entregando ao usuário comum, fazendo dele o dono do arquivo:
sudo chown mauricio:mauricio Ps3-1.0-1.all.deb
Troque o meu nome pelo nome do seu usuário, caso você esteja em um sistema Debian, instale o programa com o comando:
sudo dpkg-deb -i Ps3-1.0-1.all.deb
Caso você esteja como eu, em outro tipo de distro e você quer testar se deu certo, com o programa de ZIP do Linux, abra o arquivo DEB. No meu
caso, uso o ARK.
Ao abrir, eu devo encontrar dois arquivos “tar.gz” e um binário, “debian-binary”, “data.tar.gz” e “control.tar.gz”.
- Debian-binary: é um arquivo binário que você não vai conseguir abrir.
- data.tar.gz: são os arquivos do seu programa na forma que você colocou.
- control.tar.gz: é o arquivo que você criou com o resumo do seu programa em: debian/DEBIAN/control
Agora, a única coisa que eu não sei ainda, é como colocar o meu programa no repositório do Ubuntu, por exemplo.
Se alguém souber, nos mande esta dica nos comentários.
No próximo passo, vamos testar a instalação no ambiente Debian.