Instalei recentemente obrew
comando na minha máquina Debian para instalartldr
pá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 sudo
a instalação de pacotes. Porém, há uma limitação: apenas alguns pacotes podem ser instalados através do comando brew
.
É possível configurar brew
para 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:
- Cada gerenciador de pacotes teria que ser informado sobre o pacote que está sendo instalado (por exemplo,
brew
teria que saber que você instaloufirefox
eapt
teria que saber que você instaloutldr
) - Cada gerenciador de pacotes teria que resolver dependências de outros gerenciadores de pacotes (por exemplo, "Brew: Este programa precisa do
ncurses
, masapt
já está instaladoncurses
, 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 ( brew
não saberiam que ncurses
já está instalado).
Então, por que é difícil?
- Os gerentes de pacotes precisariam cooperar estreitamente
- 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.
- 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
- 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 brew
funcionar, eu proporia a seguinte solução, embora não tenha certeza se isso é totalmente possível:
- Pegue as fontes de
brew
. - Aprenda o formato das receitas de cerveja.
- Escreva um programa que traduza receitas automaticamente para pacotes Debian.
- Modifique
brew
para que sempre que você executá-lo, ele chame o programa para traduzir receitas para.deb
pacotes/procure os programas nos repositórios da sua distro, depois chameapt
para 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.