Archlinux: Crie pacotes de plataforma cruzada e de pacotes .deb

Cerca de um ano atrás eu expliquei como criar pacotes para Archlinux. Bem, hoje vou explicar como criá-los a partir de pacotes . Deb, aqueles usados ​​em Debian / Mint / Ubuntu / etc.
Este artigo surgiu após ler uma pergunta do usuário no fórum Jorgegc porque não consegui instalar um pacote do AUR, principalmente por estar desatualizado e usar uma versão interrompido do PKGBUILD (felizmente já fiz pacotes desta forma), também irei explicar como fazer pacotes de programas que precisam Bibliotecas de 32 bitsde código fechado o já compilado e que possui diversos pacotes para download.

A base para o PKGBUILD é a mesma, apenas com algumas alterações.
A primeira mudança será o uso de uma frase se elif por Bash


if [ "${CARCH}" = 'x86_64' ]; then
ARCH='amd64'
md5sums=('192a0a222893d59d95f00c34f3c8a674')
depends=('openal' 'lib32-openal')
elif [ "${CARCH}" = 'i686' ]; then
ARCH='i386'
md5sums=('047c670443124193c5cc3dd54da99925')
depends=('openal')
fi
source=("http://www.unaurl.com/files/${name}.$ARCH.deb")

Neste exemplo, foi definida uma variável que mais tarde será usada para alterar o URL onde está o pacote (neste caso, a arquitetura do pacote a ser baixado).
Além disso, dependendo da arquitetura, o Somas MD5 portanto, vamos alterá-los para os correspondentes.

Ao usar makepkg -g para gerar o MD5somas Isso irá gerar apenas aquele correspondente à arquitetura que você está usando. Para saber a soma MD5 do outro pacote baixe-o e use o comando md5sum file.deb conhecer o seu

Finalmente, vemos que no exemplo mudamos as dependências. Em alguns programas de 64 bits, é necessário instalar Versões de 32 bits de algumas bibliotecas então temos que indicá-los. Se não forem necessários, basta definir a variável da maneira usual.

Agora, para os pacotes .deb, vamos precisar apenas das seguintes linhas dentro da função pacote ():

cd "${srcdir}/"
tar xvzf data.tar.gz -C .
cp -r usr ${pkgdir}

Como você pode ver, só precisamos de 3 linhas neste caso para gerar o pacote. Se algo mais for necessário (por exemplo, copiar um arquivo que não vem com o pacote ou modificar o conteúdo de um) basta colocá-lo como em qualquer outro pacote.

O mesmo pode se aplicar (com algumas alterações) se, em vez de um .deb, usarmos pacotes rpm ou outros tipos de pacotes. A função Construir () não é necessário, portanto, não precisamos adicioná-lo.

E pronto, já temos um pacote multilib ou criado a partir de um pacote deb pronto para usar.
Espero que gostem e que me tenham explicado bem 😀


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   feiticeira dito

    Não é mais fácil usar o checkinstall?

  2.   Luciano Lagassa dito

    Oi. Eu tenho alguns scripts bash. Um para gerar as pastas e arquivos básicos para um pacote deb. E o último a gerar o pacote de todos os arquivos e pastas. Se você estiver interessado, posso compartilhar.

    1.    Jorgecg dito

      Claro que interessa ... pelo menos para mim.

      Agora que estou com Manjaro, agradeço todas as informações possíveis.

  3.   Jorgecg dito

    Como você é ótimo, parceiro.

    Eu ia ter dito a você no fórum que se você pudesse me explicar como compilar pacotes .deb e eu não tivesse dito nada a você para não abusar da sua generosidade…. e vou para a página e vejo que você carregou um artigo explicando todo o processo.

    Isso mostra que você é uma pessoa generosa.

    Eu disse, você é um crack.

    Uma saudação

  4.   Anibal dito

    É um ótimo amigo, uma vez que experimentei um soft que não consigo lembrar o nome que converteu de .deb para .rpm, mas não funcionou bem para mim.

    Alguém com arco poderia testar se este software passa bem para rpm e a instalação abre bem?

    http://www.justcloud.com/download/linux-64

    É para backup na nuvem, ja paguei a um tempo e tenho mais de 40gb na nuvem =)

  5.   Inspiron dito

    Ótimo! Sempre disse a mim mesma que um dia queria fazer uma embalagem, mesmo que seja para saber fazer :).

    Nesses tipos de postagem, gostaria de ter a opção de adicionar entradas como essa nos "favoritos" da minha conta.

    1.    chinoloco dito

      Concordo totalmente, plantei, mas nada 🙂
      Também seria bom poder seguir certos usuários

  6.   Rabá dito

    Grande velhinho, estou usando o manjaro há alguns dias e para estudos preciso instalar o packet tracer da cisco mas ele só tem um pacote .deb da última versão e o ke está em AUR sempre me dá um erro ao compilar, espero que com estes passos consiga instalá-lo desde que uso o linux mint à força, muito obrigado

  7.   mitos dito

    para ver se alguém se atreve a colocar em AUR Multisystem

    depende de bibliotecas deb que não estão no arch

    Mas se funcionar, sua função é criar pen drives multi-ISO com grub2 melhor do que unetbootin que só faz um.

    No momento eu tenho um ISO ubuntu dela dentro que me permite adicionar imagens se eu quiser inicializando a partir dele no próprio USB

    mas se ninguém se atreve a salvar minha passagem

  8.   mitos dito

    Desculpe, já existe um multissistema, e eu acho que não

    1.    mitos dito

      Em multissistema ...

      mas fatresize já que yaourt dá problemas, e eles o colocaram como opcional

  9.   quadros dito

    Ótimo 😀 para aprovar com "Purrr" um programa para renomear arquivos em massa.

  10.   Abril 4xas dito

    Atenciosamente,

    Atualmente no AUR eles estão removendo pacotes que não têm a função package (), como posso saber quais linhas colocar lá? Ou seja, tenho vários pacotes e fiz assim mas não sei se está tudo bem https://github.com/abr4xas/Arch-pkgbuild/blob/master/%20django-admin-honeypot/PKGBUILD o que eu realmente fiz foi passar o que estava em build () para package () mas como eu disse, não sei se está tudo bem ... Você pode me dar seus comentários e sugestões?

    obrigado

  11.   Azazel dito

    Obrigado pela informação, vou marcá-lo para referência futura.

  12.   Clerafel dito

    Alguém pode me explicar o que é, sou novo e não sei se isso me ajuda a instalar um pacote .deb mas localmente no manjaro, um jogo para ser exato. Sim, funciona?

    Procuro e eles me dizem para instalar o pacote deb2targz, mas recebo um erro ao instalá-lo a partir do terminal, e então não sei se pode ser

    1.    maxixe dito

      O mesmo acontece comigo; Preciso instalar o Kademar que é baseado no Arch; alguns pacotes que só recebo em .deb
      Alguém pode me ajudar?

      1.    valdo dito

        Se o que você quer dizer é uma falha na instalação do deb2targz, acabei de terminar de instalá-lo com o comando yaourt -S deb2targz. Claro, no ArchLinux.

  13.   Armazenamento gratuito na nuvem dito

    Postagem muito informativa. Obrigado por compartilhar.

  14.   Aves com raiva dito

    Bom post. Obrigado por compartilhar esta informação útil.

  15.   Apps para PC dito

    Obrigado por esta postagem útil. Vai ajudar muito.

  16.   jacob dito

    oi, pode deixar o script para a conversão e como usá-lo? é que em partes isso confunde um pouco, já tenho o deb que quero converter e sei que é possível porque o google chrome do AUR é um deb mas não sei fazer "MAKEPKG SI" com outro deb