How-To :: XBPS-SRC ( empacotamento no Void Linux )


E por fim nessa primeira série de dicas e artigos sobre o Void Linux, veremos como utilizar o sistema de empacotamento XBPS-SRC, algo similar ao ABS do Arch Linux.

Atualizado em: 2018-10-28

Para começar, trate de instalar os pacotes base-devel e git:

$ sudo xbps-install -Su
$ sudo xbps-install -S base-devel git

Partimos então para a configuração do xbps-src:

$ cd
$ git clone https://github.com/void-linux/void-packages.git

Entre no diretório de trabalho, a pasta void-packages:

$ cd void-packages/

A seguir, execute o comando abaixo:

$ ./xbps-src binary-bootstrap

xbps-src-001

xbps-src-002

xbps-src-003

E como exemplo, tratemos de empacotar o navegador Vivaldi (todos os pacotes possível de empacotar), estarão presentes na pasta ~/void-packages/srcpkgs/:

$ echo XBPS_ALLOW_RESTRICTED=yes >> etc/conf
$ ./xbps-src pkg vivaldi

xbps-src-004

xbps-src-005

xbps-src-006

E após o seu empacotamento, passemos a instalação do novo arquivo .xbps (uma derivação do formato XZ):

$ sudo xbps-install --repository=hostdir/binpkgs/nonfree vivaldi

xbps-src-007

xbps-src-008

Resta-nos então, apenas abrir o programa instalado, abaixo vejam a versão do mesmo:

xbps-src-009

* para atualizá-lo, visto que já foi lançada a nova versão 1.4.xyz, proceda conforme os passos descritos pelo colega @Carlos Reis no primeiro comentário:

$ cd
$ cd void-packages
$ git pull origin master
$ ./xbps-src pkg vivaldi
$ sudo xbps-install -u –repository=hostdir/binpkgs/nonfree vivaldi

Para maiores informações, execute o comando abaixo:

$ ./xbps-src -h

Configurando um pouco mais…

Já passado bastante tempo desde a confecção desta dica, porei abaixo, o meu arquivo etc/conf, com as mesmas FLAGS de compilação do Gentoo, tendo habilitado o CCACHE, Jobs do comando MAKE,etc:

~/void-packages/etc/conf.

XBPS_INSTALL_ARGS="--repository=https://repo.voidlinux.eu/current --repository=https://repo2.voidlinux.eu/current"
XBPS_CFLAGS="-march=native -fomit-frame-pointer -O2 -pipe"
XBPS_CXXFLAGS="${XBPS_CFLAGS}"
XBPS_SUCMD="sudo /bin/sh -c"
XBPS_CCACHE=yes
XBPS_MAKEJOBS=2
XBPS_ALLOW_RESTRICTED=yes

E se você sofre com a lentidão dos repositórios Void, abaixo seguem os arquivos atualizados com os repositórios mais rápidos que encontrei, cabendo ainda informar que desabilitei os repositórios MUSL e AARCH64:

~/void-packages/etc/repos-remote.conf.

# Remote repositories
repository=http://repo2.voidlinux.eu/current     ### REPO MAIS RAPIDO QUE O PADRÃO.
repository=https://repo2.voidlinux.eu/current/nonfree   ### REPO MAIS RAPIDO QUE O PADRÃO.
#repository=https://repo.voidlinux.eu/current/musl    ### DESABILITADO
#repository=https://repo.voidlinux.eu/current/musl/nonfree    ### DESABILITADO
#repository=https://repo.voidlinux.eu/current/aarch64    ### DESABILITADO

# Additional mirrors
#
# http://repo2.voidlinux.eu/current/			DE
# http://repo3.voidlinux.eu/current/			US
# http://repo4.voidlinux.eu/current/			FR
# http://mirror.clarkson.edu/voidlinux/current/		US
# http://www.gtlib.gatech.edu/pub/VoidLinux/current/	US
# https://lug.utdallas.edu/mirror/void/			US
# http://mirror.aarnet.edu.au/pub/voidlinux/current/	AU

~/void-packages/etc/repos-remote-x86_64.conf.

# Remote repositories
repository=https://repo2.voidlinux.eu/current/multilib
repository=https://repo2.voidlinux.eu/current/multilib/nonfree

Abaixo vejam imagens atuais do XBPS-SRC em uso:

Este slideshow necessita de JavaScript.

Este slideshow necessita de JavaScript.

enjoy!

How-To :: XBPS-SRC ( empacotamento no Void Linux )

7 comentários sobre “How-To :: XBPS-SRC ( empacotamento no Void Linux )

  1. Uma excelente distro, tenho instalado e maravilhoso, rolling e sem systemd. Só uma dica, o vivaldi já atualizou para 1.4, deixo aqui os comandos necessário para atualizar esse pacote, que são utilizados na mesma maneira para outros pacotes:

    $ cd void-packages
    $ git pull origin master
    $ ./xbps-src pkg vivaldi
    $ sudo xbps-install -u –repository=hostdir/binpkgs/nonfree vivaldi

    Como podem ver aqui, https://forum.voidlinux.eu/t/vivaldi-browser/1019/13

    Curtir

  2. Mais uma dica amigo @EDPS , existe um programa/script para ajudar na instalação de um pacote novo. Por curiosidade instalei o virtualbox, depois de dizeres que nao conseguias e aqui esta a bombar sem qualquer problema.
    Aqui o programa que segundo o forum configura automaticamente, programas novos.

    $ sudo xbps-install -S sv-helper

    Curtir

    1. Thanks man!

      Não lembro quem me disse ter tido problemas na instalação do DropBox, mas aqui funcionou, mas achei que também ia emperrar nos 99%.

      EDIT:

      Não funcionou! a instalação ocorre, abro o programa que baixa os arquivos necessários e fica num loop eterno, sempre encerrando como se tivesse ocorrido o sucesso na instalação e ao executá-lo novamente de novo ocorre o download dos arquivos.

      Mesmo executando pelo terminal:

      $ dropbox start -i

      aperecem estas mensagens:

      ~ » dropbox start -i
      Starting Dropbox...Traceback (most recent call last):
      File "dropbox/client/main.py", line 58, in
      File "dropbox/client/aggregation.py", line 22, in
      File "dropbox/sqlite3_helpers.py", line 48, in
      File "dropbox/fatal_db_exception.py", line 5, in
      File "arch/__init__.py", line 26, in
      File "arch/linux/util.py", line 30, in
      File "dropbox/fsutil.py", line 38, in
      File "dropbox/infinite/__init__.py", line 26, in
      File "dropbox/linux/version.py", line 77, in
      File "dropbox/linux/version.py", line 73, in _get_version
      ValueError: invalid literal for int() with base 10: '4_1'

      ** (process:23092): WARNING **: Trying to register gtype 'GMountMountFlags' as enum when in fact it is of type 'GFlags'

      ** (process:23092): WARNING **: Trying to register gtype 'GDriveStartFlags' as enum when in fact it is of type 'GFlags'

      ** (process:23092): WARNING **: Trying to register gtype 'GSocketMsgFlags' as enum when in fact it is of type 'GFlags'
      Traceback (most recent call last):
      File "dropbox/client/main.py", line 58, in
      File "dropbox/client/aggregation.py", line 22, in
      File "dropbox/sqlite3_helpers.py", line 48, in
      File "dropbox/fatal_db_exception.py", line 5, in
      File "arch/__init__.py", line 26, in
      File "arch/linux/util.py", line 30, in
      File "dropbox/fsutil.py", line 38, in
      File "dropbox/infinite/__init__.py", line 26, in
      File "dropbox/linux/version.py", line 77, in
      File "dropbox/linux/version.py", line 73, in _get_version
      ValueError: invalid literal for int() with base 10: '4_1'
      Done!
      ~ »

      Curtir

  3. Meu querido, lá venho eu outra vez! Eu REALMENTE gostei muito dessa distro. Mas estou sofrendo com uma falta de alguns pacotes. Deixa eu te fazer um pedido: Tem como você ensinar a “converter” pacotes .deb para o Void? Alguns programas que eu preciso (como o Lightworks) só são disponibilizados em binários do Debian. Ou a usar algo como o Slackbuilds no Void.
    Enquanto frito o cérebro, estou me virando rodando os programas em Containers do Ubuntu.

    Curtir

    1. Rapaz obrigado pelo comentário, sobre o Void eu só o tenho instalado em VM, pois a instalação real eu removi para liberar espaço para mais uma instalação do Slack, agora o 64Bits, que eu realmente preciso por causa dos SlackBuilds.

      Converter para .deb eu não sei como, mas tem um jeito:

      $ ar x pacote.deb
      $ sudo tar -xvf data.tar.xz -C /

      Isso irá extrair o conteúdo do pacote .deb na raiz do sistema.

      Ou você pode tentar algo como o deb2tgz:

      $ wget https://github.com/vborrego/deb2tgz/archive/0.2.tar.gz
      $ tar xvf 0.2.tar.gz
      $ sudo mv deb2tgz-0.2/deb2tgz /usr/local/bin
      $ deb2tgz arquivo.deb

      Um abraço.

      Curtir

Deixe um comentário