Lançada a versão binária do Gentoo
(gentoo.org)- O Gentoo passa a oferecer download oficial de pacotes binários e instalação direta, mantendo seu caráter de distribuição baseada em código-fonte, mas visando hardware lento e maior facilidade de instalação
- O escopo varia por arquitetura, e amd64 e arm64 podem receber mais de 20 GB em pacotes e pacotes estáveis do Gentoo atualizados diariamente
- Novas instalações stage já incluem a configuração do repositório binário, e instalações existentes podem usar o recurso adicionando um arquivo de configuração em
/etc/portage/binrepos.conf/ - Os pacotes oficiais usam o formato GPKG, que permite assinatura, e a instalação é recusada se a verificação falhar; porém, na configuração padrão, XPAK sem assinatura ainda pode ser aceito por compatibilidade
- Se você usar uma combinação de USE flags diferente do padrão do perfil, será difícil usar os pacotes binários diretamente, então será preciso operar misturando compilação local quando necessário
O Gentoo passa a oferecer pacotes binários oficiais
- O Gentoo passa a disponibilizar oficialmente o recurso de pacotes binários, há muito tempo suportado pelo Portage, por meio de download oficial e instalação direta
- O objetivo é reduzir o tempo de trabalho em hardware lento e aumentar a praticidade de instalação e atualização completas
- Ele continua sendo uma distribuição baseada em código-fonte, como antes, e permite usar juntos builds a partir do código-fonte e pacotes binários
Escopo por arquitetura
- A maioria das arquiteturas fica limitada ao sistema central e ao escopo de atualizações semanais
- amd64 e arm64 oferecem um conjunto mais amplo de pacotes
- Mais de 20 GB de pacotes são disponibilizados nos mirrors
- Incluem LibreOffice, KDE Plasma, Gnome, Docker e outros
- Os pacotes estáveis do Gentoo são atualizados diariamente
Como configurar em cada ambiente de instalação
- Para usar pacotes binários em uma instalação existente do Gentoo, é preciso criar um arquivo de configuração em
/etc/portage/binrepos.conf/- O procedimento geral pode ser consultado em Binary package quickstart
- Configurações mais detalhadas estão organizadas no binary package guide
- Em novas instalações baseadas em stage,
/etc/portage/binrepos.conf/gentoobinhost.confjá vem incluído- Se necessário,
src-uripode ser alterado para o URI do diretório correspondente em um mirror local - Um exemplo de atualização é
emerge -uDNavg @world
- Se necessário,
Critérios de build para amd64 e arm64
- Os pacotes binários em
amd64/binpackages/17.1/x86-64são compilados com a seguinte configuraçãoCFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"- Funcionam em todas as máquinas amd64 / x86-64
- As configurações de USE flags e versões dos pacotes amd64 correspondem aos perfis de pacotes estáveis
amd64/17.1/nomultilibamd64/17.1/desktop/plasma/systemdamd64/17.1/desktop/gnome/systemd
- Os pacotes em
arm64/binpackages/17.0/arm64são compilados com a seguinte configuraçãoCFLAGS="-O2 -pipe"- Funcionam em todas as máquinas arm64 / AArch64
- As configurações de USE flags e versões dos pacotes arm64 também seguem os perfis de pacotes estáveis
arm64/17.0arm64/17.0/desktop/plasma/systemdarm64/17.0/desktop/gnome/systemd
- Se for necessária otimização por CPU, ainda será preciso compilar manualmente como antes
Outras arquiteturas e integração com stage
- O hosting de pacotes binários para outras arquiteturas e ABIs está ligado aos builds de stage
- Para quase todos os stages, é fornecido hosting de pacotes binários contendo apenas o conteúdo e as configurações daquele stage
- Esse escopo inclui o compilador
gccouclange toda a toolchain de build - No momento, não há planos de ampliar mais esse escopo
Método de assinatura e verificação
- Os pacotes binários oficiais recebem assinatura criptográfica com a mesma chave usada nos stages
- Informações sobre as chaves de assinatura podem ser consultadas em Gentoo signatures
- O Portage lida com dois formatos de pacote binário
- XPAK: formato antigo, sem suporte a assinatura
- GPKG: formato novo, com suporte a assinatura criptográfica
- Todos os pacotes binários oficiais do Gentoo estão no formato GPKG
- Pacotes GPKG têm a assinatura verificada
- Se a verificação falhar, a instalação é recusada
- Na configuração padrão, pacotes XPAK sem assinatura ainda podem ser instalados por compatibilidade com pacotes binários antigos
- Para exigir assinaturas verificadas, é preciso definir
FEATURES="binpkg-request-signature"emmake.conf- Nesse caso, apenas pacotes GPKG podem ser usados
Erros de assinatura e pacotes próprios
- Se aparecer um erro informando que a assinatura não pôde ser verificada, é possível executar a Gentoo Trust Tool
getutocomo root- Um exemplo de comando é
getuto - Isso configura o keyring do Gentoo Release Engineering necessário ao Portage
- Um exemplo de comando é
- Se
FEATURES="binpkg-request-signature"estiver ativado emmake.conf,getutoserá chamado automaticamente antes do download do pacote binário- Isso serve para buscar atualizações e revogações de chaves
- Pacotes binários produzidos pelo próprio usuário podem ser recusados pelo Portage
- Esse é um efeito colateral de
FEATURES="binpkg-request-signature" - Para pacotes próprios, é necessário configurar uma chave de assinatura e fazer com que a âncora em
/etc/portage/gnupgconfie nessa chave
- Esse é um efeito colateral de
Mirrors, perfis e limitações de USE flags
- Se o download estiver lento, é recomendado usar um mirror local em vez da University of Oregon
- Basta modificar o URI em
/etc/portage/binrepos.conf - Graças à assinatura criptográfica, continua seguro usar um mirror local
- Basta modificar o URI em
- Se você usar uma combinação de USE flags diferente do padrão do perfil, não poderá usar aquele pacote binário
- O Portage pode misturar pacotes binários e pacotes compilados localmente
- O Gentoo não tem como objetivo uma instalação totalmente apenas-binária
- Os pacotes também podem ser usados em sistemas merged-usr
- Se houver problema, ele deve ser reportado como bug
- Não é possível usá-los junto com perfis mais antigos ou mais novos
- É por isso que o caminho de
src-uriinclui a versão do perfil, como17.1 - Quando surgir uma nova versão de perfil, será fornecido um novo diretório de pacotes separado
- É por isso que o caminho de
~amd64 e relato de problemas
- Ainda não há plano para oferecer pacotes binários
~amd64- Isso exigiria muitos rebuilds
- Mesmo que sejam oferecidos, por motivos técnicos seria necessário um URI separado
- Se forem necessários pacotes de teste, recomenda-se manter stable sempre que possível e adicionar localmente em
package.accept_keywords- Muitos pacotes binários ainda poderão ser usados
- O restante precisará ser compilado manualmente
- Se houver problemas com o Portage ou com algum pacote específico, é possível pedir orientação em IRC, fóruns ou mailing lists, ou enviar um bug
- O suporte a pacotes binários foi testado por algum tempo, mas, com o aumento de usuários, podem surgir edge cases
1 comentários
Opiniões no Hacker News
Para deixar claro desde o começo, sou fã hardcore do Gentoo
O encanto do Gentoo não está em compilar tudo a partir do código-fonte, mas na excelente documentação e na liberdade de instalar o que você quiser em praticamente qualquer hardware, com barreiras mínimas
Se você quiser usar Enlightenment + OpenRC + NetworkManager em um notebook de 2008, é só instalar Gentoo; se quiser usar ZFS no sistema de arquivos raiz de uma geladeira inteligente, Gentoo também serve
Se quiser usar Gnome puro + SystemD em um notebook novo, também é possível
A decisão de oferecer pacotes binários dá mais opções aos usuários, em contraste com outras distribuições, que vêm reduzindo a liberdade de escolha
O Debian se diz um “sistema operacional universal”, mas deixou de dar suporte a x86 de 32 bits, e sistemas init alternativos também podem ser instalados, mas dão um certo trabalho
Já o Gentoo permite escolher entre mais de 17 tarballs stage 3 e 35 perfis eselect
Pessoalmente, eu gosto de compilar tudo a partir do código-fonte e dessa flexibilidade; em hardware recente, isso não é nada sofrido
Se você não concorda, basta instalar os novos pacotes binários
O ponto forte do Gentoo nunca foi o Portage, mas sempre a flexibilidade e a comunidade
O mais correto é dizer que, em uma reunião da equipe de release, concluiu-se que há grande probabilidade de, em algum momento não especificado no futuro, deixarem de existir instalador e suporte de kernel para x86 de 32 bits
Atualmente, ambos ainda são fornecidos e têm suporte completo
Em especial, ainda é possível usar multi-arquitetura 32/64 bits, então também dá para executar software x86 de 32 bits
Todo mundo gostaria de dar suporte a tudo, mas, no fim, para garantir segurança e manutenção como distribuição, os recursos administráveis são limitados
Alguma coisa inevitavelmente precisa ser deixada de lado
Em qualquer distribuição Linux você pode instalar o que quiser, mas o escopo do que realmente dá para dizer que é suportado é sempre limitado pelo número de mantenedores
https://buildd.debian.org/status/package.php?p=base-files&su...
Sei disso porque mantenho pessoalmente a maioria das arquiteturas menos conhecidas do Debian, junto com snapshots regulares de instalação
https://cdimage.debian.org/cdimage/ports/snapshots/
O Debian também tem ports do Hurd tanto para i386 quanto para amd64
Eu nem estava usando perfis musl ou clang
Como essa foi minha primeira impressão, não penso em considerar o Gentoo, ou algum fork derivado, a menos que ofereçam um instalador
Pretendo instalar em breve o Solus OS / Solus Linux; o gerenciador de pacotes me causou uma boa primeira impressão e, embora não seja algo no estilo nix ou guix, eles afirmam que é reprodutível
Para mim, o grande atrativo do Gentoo é o Portage
Ele oferece mais do que um simples ambiente de build e gerenciamento de dependências
Ebuilds, ou seja, os pacotes do Gentoo, contam com o apoio de excelentes ferramentas e Eclasses que lidam com várias exceções no processo de build
Desenvolver um Ebuild parece trabalhar em um projeto de software de verdade, e é ótimo para quem quer experimentar pacotes que não estão no repositório oficial
Por sinal, acabei de publicar uma ferramenta que gerencia um chroot sem privilégios para testar ebuilds
Essa mudança vai tornar o Gentoo mais acessível para muita gente, mas acho que não combina comigo
Minhas configurações de build, por exemplo CFLAGS, certamente não vão bater com os binários oficiais, então no fim eu provavelmente não vou usá-los
Ao usar Gentoo em ambiente de produção, remover recursos e integrações com softwares que eu não usava virou uma parte importante da postura de segurança
Dito isso, eu sempre mantive um host de build dedicado para gerar binários, mas o suporte do Gentoo a binários não era muito bom
Basicamente se resumia a disponibilizar os artefatos compilados via HTTP ou NFS, sem assinatura
Estou muito animado com a inclusão de verificação criptográfica no novo formato de pacote
Mesmo para distribuição apenas interna, isso é algo que já deveria existir desde o início
É útil para quem não quer configurar um binrepo separado, especialmente quando há compilação cruzada envolvida, mas ainda quer reaproveitar a configuração existente do Portage e ebuilds customizados
O ChromeOS usa bazel para executar ebuilds dentro de um chroot temporário
https://chromium.googlesource.com/chromiumos/bazel/+/refs/he...
Isso permite garantir que dependências não declaradas não sejam usadas
Mesmo assim, fico tentado a criar um script para sobrescrever os pacotes relacionados ao plasma para usarem binários comuns
Eu compilaria por conta própria o que depende de desempenho, e receberia os pacotes de GUI como binários; acho que isso economizaria muito tempo de build
Também não parece que a perda seria tão grande
Eu estava procurando algo assim desesperadamente para o meu projeto de sandbox
Digam o que quiserem sobre o conceito do Gentoo, mas, aos 17 anos, o processo de aprender sobre empacotamento de software, compilação distribuída, os detalhes da otimização em tempo de compilação e otimização do kernel Linux foi realmente divertido
Pelo que me lembro, a documentação da comunidade também era bem boa
Talvez alguns dos patches que enviei ainda estejam em algum lugar em algumas releases
Só depois de ver uma máquina Slackware rodando tão rápido quanto uma máquina Gentoo é que percebi que todos aqueles ajustes e otimizações, e o software mais recente, não valiam tanto a pena
Em apps específicos, por exemplo render farms ou mineradores de criptomoedas, compilações customizadas e ajustes podem até ajudar, mas jogos tinham o mesmo FPS em qualquer distribuição
Antigamente, compilar para o menor denominador comum nem sequer incluía MMX ou SSE, e em alguns algoritmos limitados pela CPU isso podia fazer uma grande diferença
Mas detectar os recursos da CPU em tempo de execução e executar a versão ideal também sempre foi possível, então escolher recursos em tempo de compilação nunca foi a única forma
Depois, com a chegada do AMD Opteron, todo mundo passou para um novo patamar mínimo
Compilar para amd64 voltou a significar uma CPU específica, e na época ainda não havia instruções mais novas
Hoje existem vários níveis[1] de AMD64, o que pode ser importante em certas tarefas como SIMD
Como exemplo mais comum e frequente, o popcnt adicionado no v2 é bom isoladamente para coisas como bitset, mas, no desempenho do programa como um todo, nos meus projetos quase não consegui medir diferença entre v1 e v3
No caso dos jogos, é provável que fossem apenas binários e já tivessem sido compilados para o menor denominador comum, ou usassem seleção de recursos em tempo de execução
Além disso, a maioria provavelmente era limitada pela GPU de qualquer forma
[1] https://en.wikipedia.org/wiki/X86-64#Microarchitecture_level...
Alguns anos atrás, por algum motivo que nem sei explicar, desperdicei horas e dias de tempo de computador e do meu próprio tempo compilando e fazendo ajustes finos em um sistema Gentoo
Sendo que, de qualquer jeito, no dia seguinte eu ia formatar para instalar o CD do Ubuntu que tinha acabado de chegar
Pessoas que um dia compilaram o próprio kernel e hoje não fazem mais isso se tornaram competentes em parte justamente por terem feito esse tipo de coisa, nem que tenha sido por pouco tempo
Só depois de experimentar é que passa a ser razoável não fazer mais
Não é correto dizer “se eu fosse mais esperto, não teria desperdiçado tempo com isso”, nem deixar que alguém novo entenda dessa forma
No fim, cansei e mudei para o Arch, onde conseguia quase a mesma coisa sem ter que brigar o tempo todo com pacotes quebrados
Ainda assim, continuo usando até hoje o conhecimento que ganhei lidando com problemas de baixo nível aleatórios
Mesmo assim, aprendi bastante
Hoje em dia, sinto que Linux é quase meu superpoder
OS, VM, contêineres, Nix-shell e WSL2 são todos Linux
Caia eu em qualquer linha de comando, incluindo BSD até certo ponto, eu me sinto à vontade e consigo resolver problemas
Gosto de pensar que o tempo divertido que passei com o Gentoo me levou até lá
No CentOS, até para usar apenas o player de linha de comando mpg123 era necessário instalar o X inteiro, mas no Gentoo dava para desativar a integração do mpg123 com o X
As flags eram um bônus em cima disso
Hoje instalo Debian, coloco só alguns programas que uso no dia a dia e pronto
Consigo recriar minha configuração em outra máquina em 20 minutos
Usei Gentoo por bastante tempo no início dos anos 2000, e aprendi com essa experiência quase tudo o que sei sobre máquinas Linux em geral
O interessante nas USE flags era descobrir o próprio fato de que um pacote tinha uma integração específica com outra biblioteca ou pacote
Quando percebi que o binário do SQLite3 não se comportava da mesma forma se fosse linkado sem suporte a readline, entendi o que era readline de modo geral
Isso se repetiu com inúmeras bibliotecas que em outros sistemas Linux parecem estar sempre incluídas e invisíveis
Foi uma ferramenta de aprendizado valiosa que encontrei no momento certo da minha vida
A sensação é meio estranha
Muitos comentários dizem que usaram Gentoo ou que usavam antigamente
Mas eu ainda uso como daily driver e como principal em servidores
Fico curioso para saber o que é diferente para que o Gentoo seja o melhor para mim
E não pretendo ativar pacotes binários
Rodo Gentoo em todos os meus dispositivos, como GPD Win 4, Pixelbook com coreboot, NAS, VPS etc.
Acho que os motivos são estes
Se quiser SystemD, pode usar; se quiser OpenRC, é só usar
No Gentoo, me sinto seguro e confortável
Porque sei que o Gentoo sempre vai respeitar a liberdade, que é o que mais valorizo no Linux
Gentoo é como um livro de aventura em que você escolhe o caminho
Se quiser usar SystemD + Gnome + PulseAudio + pacotes binários, pode; se quiser usar OpenRC + Hyprland + Pipewire + NetworkManager em vez de netifrc, também pode
Gentoo não é uma distribuição em que se compila tudo, é uma distribuição em que se escolhe tudo
Este anúncio não faz diferença para mim, mas dá mais opções aos usuários
Gentoo também é bom, mas viver como administrador de sistemas NixOS é muito mais fácil do que como administrador de sistemas Gentoo
Não estou tentando rebater se você responder; estou genuinamente curioso
No meu caso, o motivo pelo qual o Gentoo não funcionou para mim é que não opero um servidor pessoal e, no trabalho, uso servidores em nuvem
Provavelmente baseados em Ubuntu ou no estilo AWS, e não compilo o kernel nem nada do tipo
No desktop, há mais de 10 anos, tentei Gentoo porque um amigo me convenceu dizendo que “seria mais rápido por ser compilado para o seu hardware”
Perdi muito tempo instalando e fazendo funcionar, mas em nenhuma das tarefas que eu faço ele foi visivelmente mais rápido que um Ubuntu comum, e só exigiu mais tempo de configuração
Então abandonei
Além disso, aquele “aprendi muito configurando o Gentoo”, que se ouve com frequência, no meu caso foi falso
Como a maioria das pessoas, segui receitas, defini flags que eu não entendia e mexi em arquivos de configuração; para ser prudente, eu não aprendi nada
Apenas segui um procedimento
Claro, essa foi a minha experiência
Não sei exatamente, mas eu também uso há 20 anos
Não um daily driver ou servidor em que você mexe toda semana, mas um equipamento que foi configurado muito tempo atrás e continuou funcionando desde então
Quero dizer um sistema no qual você faz login só algumas vezes por ano
Parei de usar Gentoo quando montei meu primeiro sistema “em produção”
As pessoas começaram a usá-lo e ele ficou “pronto” no sentido de que eu não tinha mais motivo para fazer login todo dia ou toda semana
Eu ainda queria atualizações de segurança e, muito raramente, precisava de um pacote novo por causa de algum recurso novo, mas basicamente queria um sistema estável
Gentoo era terrivelmente inadequado para esse uso
Mesmo no meu desktop pessoal, eu atualizava toda semana e quase sempre havia alguma falha de build no emerge; um sistema que pudesse ficar meses sem atualização seria ainda pior
Então fui para Debian, e foi bom
Gostei especialmente dos unattended upgrades e, no fim, migrei todas as máquinas para Debian
Se você usa Gentoo, fico curioso se também tem máquinas nas quais não mexe toda semana, com que frequência as atualiza e com que frequência é necessária intervenção manual para concluir uma atualização
É muito pouco, e 15 anos atrasado
Um dos motivos pelos quais migrei do Gentoo para FreeBSD há mais de 15 anos foi que no Gentoo era preciso compilar tudo, enquanto o FreeBSD oferecia pacotes binários
Hoje isso talvez não seja tão importante, mas na época de um único core de CPU e 1 GB de RAM, era uma diferença que mudava o jogo
Usei Gentoo por muito tempo, depois migrei para macOS por alguns anos, e nessa época usei Gentoo prefix, que era muito superior ao Homebrew
Quase 10 anos atrás, adicionei patches para fazer o llvm upstream funcionar no Gentoo prefix no macOS [1]
Em um evento de reencontro do GSoC, acabei encontrando alguém que queria me dar privilégios de mantenedor, mas isso nunca foi até o fim
Ele já tinha me alertado que esse trabalho seria complicado
Eu continuava dizendo que o prefix também precisava de binários
Fico imaginando como teria sido se o Gentoo prefix no Mac pudesse instalar pacotes com a mesma facilidade que o Homebrew
É triste, mas Gentoo é um bom exemplo de como até um projeto open source tecnicamente superior não consegue sobreviver derrotando soluções inferiores se ignora a conveniência básica do usuário final e não tem uma boa estrutura de gestão
Acho que o opensolaris/illumos também acabou praticamente dependente de suporte vital por motivos parecidos
Os responsáveis não conseguiram superar o elitismo e não conseguiram decidir que, para participação da comunidade, era preciso algo mais simples do que 100 camadas de espaguete incompreensível de makefile/shell para compilar o kernel
[1] https://github.com/fishman/timebomb-gentoo-osx-overlay/tree/...
Gentoo sempre foi um nicho mesmo dentro da comunidade Linux, que já é um nicho, mas ainda assim parece continuar rodando de forma divertida
Qual é o problema?
Dá até arrepiar pensar em quanta conta de luz e gases de efeito estufa devem ter sido gerados compilando desnecessariamente o mesmo software repetidas vezes
Gentoo nunca foi tão usado quanto Red Hat ou Ubuntu
Além disso, se o computador já estava ligado de qualquer forma, o consumo de energia da CPU é basicamente erro de arredondamento em comparação com HDDs rotativos, monitores etc.
Algumas pessoas jogam 12 horas por dia em PCs gamer de quilowatts, dirigem carros em pistas ou ficam passeando em barcos que consomem muito combustível
O que torna o Gentoo excelente é que ele foi projetado desde o início para facilitar adicionar e manter aquele pequeno ajuste que eu quero no meu sistema
Todas as outras distribuições que usei, todas as grandes e várias menores, tendem a funcionar melhor no estado padrão, mas, se você sai do caminho definido, vem uma dor enorme
Um sistema Gentoo bem ajustado simplesmente funciona™
Não importa o que “funciona bem” signifique para você pessoalmente
Pode ser um conflito de nomes do python 2to3 quando o Arch decide sobrescrever o upstream, ou problemas de latência no núcleo do sistema porque o SystemD faz coisas desnecessárias demais em modo kernel
Apesar de vários defeitos, sou um usuário muito satisfeito do Gentoo
Pacotes binários upstream são apenas mais uma extensão dessa liberdade
Já existiam versões binárias de alguns projetos importantes, ou era possível montar seu próprio servidor de build, mas tornar mais binários fáceis de usar permite que muito mais gente aproveite essas vantagens sem o enorme custo de tempo de compilar cada coisinha
Se você precisar de mais flexibilidade para um pacote específico, como patches ou use flags, isso ainda é possível e fácil de manter
Isso é uma grande vitória
Houve um momento certo em que o Gentoo realmente funcionava de forma bem fluida
Era a época em que não havia use flags demais nem de menos, e em que a gente recompilava o Open Office nas noites frias de inverno quando o quarto do dormitório estava frio demais
Digo isso com carinho