É possível configurar 'brew' para instalar pacotes de repositórios da Debian?

2

Eu recentemente instalei o comando brew na minha máquina Debian para instalar tldr man pages no meu sistema. O comando parece útil para instalar programas que não são empacotados pelo Debian, também não requer sudo para instalar pacotes. No entanto, existe uma limitação: apenas alguns pacotes podem ser instalados através do comando brew .

É possível configurar o brew para instalar pacotes dos repositórios da Debian?

    
por GAD3R 24.10.2016 / 13:26

2 respostas

6

É possível? Sim. Ambos os programas são de código aberto. É conveniente? Na verdade não.

Por quê?

Os gerentes de pacotes trabalham mais ou menos assim:

  • Eles acompanham os pacotes instalados em seu sistema (e sua versão)
  • Para fazer isso, eles especificam seu próprio formato de pacotes (por exemplo, .deb) e usam esses pacotes como instruções sobre como instalar o programa e como rastreá-lo
  • Eles também rastreiam dependências (por exemplo, "este programa precisa ser aberto para funcionar!")

É por isso que ter um sistema que usaria poucos gerenciadores de pacotes não é a melhor ideia:

  1. Cada gerenciador de pacotes teria que ser informado sobre o pacote que está sendo instalado (por exemplo, brew teria que saber que você instalou firefox e apt teria que saber que você instalou tldr )
  2. Cada gerenciador de pacotes teria que resolver dependências de outros gerenciadores de pacotes (por exemplo, "Brew: Este programa precisa de ncurses , mas apt já instalou ncurses , então não preciso puxá-los!").

Você vê, o problema com 2 é que os gerenciadores de pacotes são abstração para os repositórios subjacentes. Pessoas como os Debian escolhem os pacotes que eles querem que os usuários usem, e os disponibilizam para os outros. No entanto, eles também selecionam esses pacotes para que o sistema seja consistente; eles querem a menor quantidade de pacotes para oferecer a maior funcionalidade. Por que instalar ncurses versão 1,2 e 3, quando você pode fazer tudo funcionar na versão 2?

O primeiro problema também é uma má notícia. Os gerenciadores de pacotes teriam que se informar sobre o que eles fazem, ou poderiam colidir ( brew não saberia que ncurses já está instalado).

Então, por que é difícil?

  1. Os gerentes de pacotes precisariam cooperar estreitamente
  2. Os gerentes de pacotes precisariam ter uma política rígida sobre o que fazer quando não conseguem concordar com o pacote
  3. Os gerentes de pacotes teriam que trabalhar quase que interconectados, com a única diferença visível sendo os programas disponíveis
  4. Os gerentes de pacotes teriam que rastrear os repositórios uns dos outros em caso de atualizações.

Isso efetivamente significa que você precisaria de um gerenciador de pacotes que consistisse nos dois gerenciadores de pacotes. Você precisaria de um novo programa.

Então, o que posso fazer?

Primeiro, eu me perguntaria "Por que eu quero fazer isso?". Honestamente, sua distribuição deve fornecer muitos pacotes. Se você não está feliz com quantos pacotes você tem, você pode considerar mudar para outra distribuição que tem mais pacotes que você precisa.

Se você está realmente desesperado para fazer com que este brew funcione, eu proporia a seguinte solução, embora eu não tenha certeza se isso é totalmente possível:

  1. Pegue as fontes de brew .
  2. Aprenda o formato de receitas de cerveja.
  3. Escreva um programa que traduza automaticamente receitas para pacotes Debian.
  4. Modifique brew para que, sempre que você executá-lo, chame o programa para traduzir receitas para .deb packages / pesquisas para os programas nos repositórios de sua distribuição e, em seguida, chame apt para instalar este pacote.

Fazer essas modificações provavelmente levaria muito tempo e não é a coisa mais fácil. Eu sugiro mudar a distribuição ou aderir ao seu gerenciador de pacotes.

    
por 31.10.2016 / 14:03
0

Sim, mas seria um desperdício não trivial de esforço. Seria mais sensato fazer um ppa para o tldr ou aceitá-lo nos principais repositórios do Debian, ou simplesmente usar < href="https://tldr.ostera.io"> link .

    
por 01.11.2016 / 15:07