Pare de baixar os binários do GitHub manualmente: faça isso

por Nada Em Troca
7 minutos de leitura
Use estes 7 comandos do Linux para manter seu sistema organizado e rápido

Você já teve dificuldade para instalar software obscuro? Você testa primeiro os repositórios de software da sua distribuição, recorrendo aos repositórios da comunidade. Às vezes você falha e também não está na Snap Store ou no Flathub, então você baixa manualmente do GitHub como último recurso. Existe uma maneira melhor e vou mostrar como.

Encontrar, baixar e instalar software manualmente é uma chatice. Existem várias ferramentas à nossa disposição, cada uma com seus pontos fortes, mas o Universal Binary Installer (UBI) resolve esse problema melhor do que a maioria. Abordarei o que é, que problema resolve, como funciona e como usá-lo.

O que é RBI?

Resumindo, UBI é um pequeno programa Rust que instala binários do GitHub ou GitLab. Os desenvolvedores de software não apenas publicam seu código nessas plataformas; eles frequentemente o constroem e publicam lá também. O UBI vai diretamente para a fonte enquanto automatiza as partes chatas para você.

Compreendendo as versões do GitHub

Uma versão do GitHub é um conjunto de artefatos do projeto (saídas de compilação, como tarballs) publicados em uma página da web específica do projeto no GitHub. Por exemplo, o repositório lazydocker publica binários que você pode baixar e executar. A página de lançamentos do GitHub para um projeto pode ter muitos links, organizados por versão.

Um navegador da web exibe uma página com uma lista agrupada de nomes de arquivos. Cada nome de arquivo é exclusivo e contém uniformemente o nome do projeto, a versão, o sistema operacional e a plataforma de hardware como segmentos discretos.

Os nomes de arquivos normalmente contêm muitos detalhes sobre o artefato de construção. Por exemplo, você pode ver na imagem anterior que os nomes de arquivos do preguiçoso são mais ou menos assim:

preguiçoso_0.24.2_Linux_x86_64.tar.gz

O GitHub não impõe uma convenção de nomenclatura padrão, portanto os nomes podem assumir qualquer formato. O formato que o lazydocker usa é comum, entretanto, e geralmente podemos esperar que eles incluam o nome do projeto, a versão, a plataforma e, às vezes, informações da libc (por exemplo, glibc ou musl).

Libc é a biblioteca padrão C. É uma coleção de objetos compartilhados (por exemplo, libc.so.6 ou libresolve.so.2) na maioria dos sistemas Linux que fornece utilitários de programação para aplicativos. Eles são cruciais para o funcionamento dos aplicativos.

O problema que o UBI resolve

Para uma avaliação única, baixar o software manualmente é adequado. Mas para uso a longo prazo, torna-se uma tarefa árdua – você deve visitar a página, baixar e descompactar o arquivo, mover o binário, definir o bit de execução e, em seguida, alterar sua propriedade. Você pode escrever um script Bash para simplificar esse processo, mas é muito complicado instalar apenas um aplicativo.

O UBI torna conveniente a instalação de qualquer software do GitHub ou GitLab. Agora, projetos pequenos e independentes estão mais acessíveis do que nunca. Isso significa que você pode sair do ecossistema da sua distribuição e acessar software de última geração em um dos maiores repositórios do planeta.

Guia Descobrir no Kubuntu Focus Ir16 (Gen 2).
3 aplicativos Linux úteis que vale a pena experimentar neste fim de semana (5 a 7 de dezembro)

Quer monitorar os recursos de um dispositivo remotamente sem SSH? Dê uma olhada no primeiro.

2
Por Glória da Jordânia

Como o UBI encontra o binário certo

As versões do GitHub contêm artefatos de construção para várias plataformas, versões e documentos de suporte. A UBI deve escolher o mais adequado para o seu sistema.

O UBI usa um processo de eliminação para excluir arquivos irrelevantes, que se parece com isto:

  1. Filtre extensões desconhecidas (por exemplo, .foo, .bar).
  2. Se sobrar um arquivo, use-o; caso contrário, filtre o irrelevante…
    1. Sistemas operacionais.
    2. Arquiteturas de CPU
    3. Compilações Libc (por exemplo, musl ou glibc).
  3. Filtrar 64/32 bits

Um arquivo deverá permanecer; caso contrário, você pode especificar explicitamente uma correspondência usando o sinalizador –matching.

Depois de selecionar o arquivo, o UBI deve escolher o executável correto, porque muitas vezes essas compilações vêm com arquivos adicionais.

O processo é simples; ele selecionará um arquivo cujo nome…

  1. Corresponde ao projeto.
  2. Começa com o nome do projeto: por exemplo, foo-v1.2.3, foo-linux-amd64.

Resumindo, o UBI filtra a lista de arquivos por extensão e informações de plataforma; em seguida, extrai (e renomeia) um binário que corresponda ao nome do projeto.

Instalando UBI

Instalar o UBI é simples, embora alguns reclamem sobre o ataque ao curl. Melhorei o script de instalação para incluir o “BIN_DIR” necessário em sua variável PATH. É aí que residem os seus binários instalados e você está livre para alterá-los, mas se o fizer, deverá usar o sinalizador –in ao instalar aplicativos. Eu recomendo criar um alias para isso.

Você deve ler e verificar os scripts antes de executá-los dessa forma (também conhecido como curl-bashing). Verifique o script de instalação do UBI.

BIN_DIR="$HOME/bin" mkdir -p "$BIN_DIR"    && curl --silent --location       https://raw.githubusercontent.com/houseabsolute/ubi/master/bootstrap/bootstrap-ubi.sh       | TARGET="$BIN_DIR" sh    && {      if [[ ":$PATH:" != *":$BIN_DIR:"* ]]; then        for rc in ~/.zshrc ~/.bashrc; do          if [ -f "$rc" ]; then            echo "export PATH="$BIN_DIR:$PATH"" >> "$rc";            echo "Added $BIN_DIR to PATH in $rc";          fi;        done;      fi;    }

Pode ser necessário recarregar seu shell se ele adicionou o caminho à sua configuração: fonte ~/.bashrc para Bash ou fonte ~/.zshrc para Zsh.

Usando UBI

Para instalar software de um repositório GitHub, tudo que você precisa são os nomes do proprietário e do repositório. Um URL do GitHub se parece com este:

https://github.com/houseabsolute/ubi

Os segmentos de caminho “houseabsolute” e “ubi” são os nomes do proprietário e do repositório, respectivamente.

Apenas como exemplo, para instalar o UBI (com UBI), execute:

ubi --project houseabsolute/ubi

É isso. Na configuração do seu shell, você pode criar um alias ou função para facilitar as coisas:

add() {   case "$1" in   ubi) ubi --project houseabsolute/ubi ;;   *) echo "Unhandled project: '$1'" ;;   esac }

“instalar” é um comando na maioria dos sistemas, então chamei a função de “adicionar”.

Lidar com casos extremos

Às vezes, o algoritmo de correspondência não resolve um único arquivo porque os editores definiram alguns elementos adicionais (não tratados) em seus nomes. Você tem algumas opções para gerenciar esses casos extremos.

Dado um lançamento que possui elementos adicionais “foo” e “bar” em seu nome:

ubi-Linux-musl-foo-x86_64.tar.gz ubi-Linux-musl-bar-x86_64.tar.gz

O sinalizador “–matching” permite distingui-los:

ubi --project houseabsolute/ubi --matching foo

Ou você pode usar Regex:

ubi --project houseabsolute/ubi --matching-regex '.+-foo-.+'

“–matching” aplica o filtro depois o algoritmo de correspondência padrão e “–matching-regex” antes.

Para instalar uma versão específica, especifique uma tag:

ubi --project houseabsolute/ubi --tag v0.8.2
Um navegador da web exibe uma página com uma lista de versões com versão do preguiçoso. Duas setas anotadas apontam para um número de versão de compilação específico e um botão que indica que a visualização da tag está ativa.

A imagem mostra como determinar nomes de tags para versões específicas.

Às vezes, o arquivo não contém um executável com nome adequado (por exemplo, o nome do projeto). Nesse caso, use o sinalizador “–exe” para especificar o destino:

ubi --project houseabsolute/ubi --exe ubi

Por último, você pode especificar o diretório de saída do binário com o sinalizador “–in”:

ubi --project houseabsolute/ubi --in ~/.local/bin
Mascote do Linux com uma lupa.
7 aplicativos Linux subestimados criminalmente sem os quais não consigo viver

Sete aplicativos gratuitos pelos quais vale a pena pagar.

29
Por Queimado por Ghosh

UBI é um programa simples que preenche uma lacuna de longa data no ecossistema de software Linux, onde pacotes de nicho ou independentes eram difíceis de obter automaticamente. O UBI preenche esse vazio e não causa confusão. Ele não extrai milhares de dependências nem requer sandbox do SELinux. Não há cache ou formatos de empacotamento complexos. Ele aproveita um canal que a maioria dos desenvolvedores já usa, dando acesso a projetos de ponta.

Também uso o Distrobox para instalar software difícil de obter em qualquer sistema. Com Distrobox, UBI e os repositórios oficiais e comunitários do Linux: é difícil encontrar aplicativos que não consigo usar.

O mascote do Linux vestindo uma bebida noturna dentro de uma lua crescente, colocado sobre um fundo desfocado que lembra as cores do gráfico de commit do Lazygit e cercado por um diagrama ramificado estilizado com nós circulares.
Este aplicativo Linux de código aberto me fez abandonar o comando git

É provavelmente a melhor TUI que usei e também parece ótima.

Por Bobby Jack
Este artigo foi útil?
Gostei0Não Gostei0

Deixe um comentário

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00