É possível configurar o `brew` para instalar pacotes de repositórios Debian?

É possível configurar o `brew` para instalar pacotes de repositórios Debian?

Instalei recentemente obrewcomando na minha máquina Debian para instalartldrpáginas de manual no meu sistema. O comando parece útil para instalar programas que não são empacotados pelo Debian e também não requer sudoa instalação de pacotes. Porém, há uma limitação: apenas alguns pacotes podem ser instalados através do comando brew.

É possível configurar brewpara instalar pacotes de repositórios Debian?

Responder1

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

Por que?

Os gerenciadores de pacotes funcionam mais ou menos assim:

  • Eles rastreiam pacotes instalados em seu sistema (e suas versões)
  • 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 do openssl para funcionar!")

É por isso que ter um sistema que use 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, brewteria que saber que você instalou firefoxe aptteria 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 do ncurses, mas aptjá está instalado ncurses, então não preciso extraí-los!").

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

O primeiro problema também é uma má notícia. Os gerenciadores de pacotes teriam que informar uns aos outros sobre o que fazem, ou poderiam colidir ( brewnão saberiam que ncursesjá está instalado).

Então, por que é difícil?

  1. Os gerentes de pacotes precisariam cooperar estreitamente
  2. Os gerentes de pacotes teriam que ter políticas rígidas sobre o que fazer quando não chegassem a um acordo sobre o pacote.
  3. Os gerenciadores de pacotes teriam que ser capazes de trabalhar quase de forma intercambiável, com a única diferença visível sendo os programas disponíveis
  4. Os gerenciadores de pacotes teriam que ser capazes de rastrear os repositórios uns dos outros em caso de atualizações.

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

Então o que eu posso fazer?

Em primeiro lugar, eu me perguntaria “Por que quero fazer isso?”. Honestamente, sua distribuição deve fornecer muitos pacotes. Se você não estiver satisfeito com a quantidade de pacotes que possui, considere mudar para outra distribuição que tenha mais pacotes necessários.

Se você estiverrealmentedesesperado para fazer isso brewfuncionar, eu proporia a seguinte solução, embora não tenha certeza se isso é totalmente possível:

  1. Pegue as fontes de brew.
  2. Aprenda o formato das receitas de cerveja.
  3. Escreva um programa que traduza receitas automaticamente para pacotes Debian.
  4. Modifique brewpara que sempre que você executá-lo, ele chame o programa para traduzir receitas para .debpacotes/procure os programas nos repositórios da sua distro, depois chame aptpara instalar este pacote.

Fazer tais modificações provavelmente levaria muito tempo e não é fácil. Sugiro mudar a distribuição ou usar o gerenciador de pacotes.

Responder2

Sim, mas seria um desperdício de esforço não trivial. Faria mais sentido fazer umappapara tldr ou aceitá-lo nos principais repositórios Debian, ou apenas usarhttps://tldr.ostera.io.

informação relacionada