10 Dicas Fundamentais para seu Gentoo Linux

Primeira parte dessa série.


10 Dicas Fundamentais para seu Gentoo Linux

As pessoas me pedem diversos conteúdos sobre Gentoo e Portage , mas esses mundos são muito gigaaaaaaaaantes!!! 😀️ .

Então vou postar séries de dicas de ambos aqui em lista de tópicos como esse, apesar de não haver essa informação no título dessa posatgem, essa é a PRIMEIRA PARTE dessa série. Acredito que para início essas dicas iniciais são fundamentais, vamos à lista!


1. Habilite o IKCONFIG no Kernel

O suporte ao .config no Kernel, também conhecido como IKCONFIG, permite que os usuários construam uma cópia da configuração com a qual o kernel foi construído dentro do próprio kernel.

Isso permite que eles inspecionem a configuração do kernel enquanto estiver em execução, sem ter que se preocupar se eles mudaram ou limparam o diretório de origem após a compilação.

Habilitando no kernel:

su
cd /usr/src/linux
make menuconfig
General Setup  --->
    <*/M> Kernel .config support
        [*] Enable access to .config through /proc/config.gz

E recompile:

su
make && make modules_install && make install

Se possui o GRUB , rode também: grub-mkconfig -o /boot/grub/grub.cfg


2. Defina o a ACCEPT_KEYWORDS no seu arquivo /etc/portage/make.conf

Se seu sistema é amd64, por exemplo, alguns softwares exigem que você explicite isso, porque o pacote tem código para outras arquiteturas, e você não conseguirá instalá-lo se essa variável não estiver definida, saiba mais aqui. Exemplo: ACCEPT_KEYWORDS="~amd64", ou somente rode:

echo 'ACCEPT_KEYWORDS="~amd64"' | sudo tee -a /etc/portage/make.conf

3. Saiba quando é melhor usar um Overlay

Se precisar compilar um software que não há na árvore do Portage, e quiser mais facilidade de instalação use um Overlay, veja aqui como instalar o Layman.


4. Habilite parâmetros mais usados por padrão

Se você usa algum parâmetro do emerge com frequência, é interessante você adicionar ele à variável EMERGE_DEFAULT_OPTS ao seu /etc/portage/make.conf . Eu por exemplo, uso bastante o -a e meu processador só possui 2 núcleos, logo, sempre compilo com --jobs 2 para não sobrecarregar meu notebook.

A opção --verbose também é muito interessante!


5. Ganhe mais desempenho nas compilações

Faça uso frequente da opção --quiet ou somente -q , os outputs do compilador não somente deixam o prompt feio, elas deixam a compilação mais demorada, sério! Fiz o teste com pequenos e grandes softwares e os tempos aproximaram o ganho de 15% em média. Só não recomendo usar esse parâmetro na variável da dica anterior, pois as saídas do --search ficarão suprimidas e com menos detalhes, saiba mais.


6. Saiba com usar corretamente as FLAGS

Use o arquivo /etc/portage/package.use/zz-autounmask . Não defina flags diretamente usando a variável USE no terminal, ex.: sudo USE="network mpd" emerge polybar , isso gera problema quando você atualizar o software, ele recompilará sem suporte à network e mpd , sem dizer que na maioria das vezes não é interessante adicionar flags universalmente à variável USE no /etc/portage/make.conf .

Somente quando são caso globais, ou seja, quando qualquer software depende dele, por exemplo: USE="gnome -kde"(se seu sistema tem o GNOME instalado e não tem o KDE), mas esse exemplo foi bem razoável, pois seu profile(veja eselect profile list) que você definiu na instalação do seu Gentoo e escolheu(set) para o GNOME, logo todas as flags para isso já estão definidas para o Portage, veja com emerge info | grep ^USE.

Logo a maneira mais correta é inserir a flag somente para o software que deseja no arquivo /etc/portage/package.use/zz-autounmask, lembre-se de adicionar com a versão do software, exemplo: echo '>=x11-misc/polybar-3.4.2-r1 network mpd' | sudo tee -a /etc/portage/package.use/zz-autounmask a opção >= no início da linha diz que o Portage deve incluir essa flag para qualquer versão igual ou superior à informada e separado por espaços informe as flags.


7. Explore o Gentoolkit

  • Antes de compilar/instalar qualquer pacote, use o comando equery uses [categoria/nome-do-pacote](informe sempre com a categoria para evitar nomes ambíguos de pacotes), é necessário possuir o Gentoolkit instalado(emerge gentoolkit) ex.: equery uses x11-misc/polybar , e veja quais flags já estão habilitadas para instalação e/ou também atualização e quais você gostaria de incluir no seu package.use/zz-autounmask.

Existem várias opções para o comando equery(quais pacotes dependem de alguma flag; quais pacotes usam determinada flag; …) , rode equery --help para mais detalhes e teste cada uma delas para entender melhor cada opção.


8. Atente-se às licenças!

Use também a variável ACCEPT_LICENSE="*" no seu make.conf , nesse caso ele aceita todos os tipos de licença e evita problema durante instalação de aplicativos.


9. Pacotes de idiomas

Defina também o idioma do seu sistema diretamente no seu make.conf usando a variável L10N, exemplo: L10N="pt-BR" para nesse caso se você instala softwares com o idioma em Português Brasileiro.

Para saber qual código/nome usar para seu país veja aqui, se seu sistema for Inglês Estados Unidos é dispensável essa informação e não esqueça de atualizar com a opção --changed-use, ex.: emerge --update --changed-use @world. Não use a variável LINGUAS ela foi descontinuada , veja também.


10. Fique mais veloz!

Deixe os downloads dos pacotes mais velozes definindo um mirror para o mesmo usando a variável GENTOO_MIRRORS no seu make.conf , exemplo para o mirror do Brazil da UFPR: GENTOO_MIRRORS="https://gentoo.c3sl.ufpr.br/ http://gentoo.c3sl.ufpr.br/ rsync://gentoo.c3sl.ufpr.br/gentoo/" , consulte a lista dos mirros aqui .

Se quiser mais facilidade para inserir, instale/use o comando mirrorselect.


Espero que seja útil essa primeira parte dessa série, caso tenha interesse em saber como está meu make.conf, aqui está:

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

# NOTE: This stage was built with the bindist Use flag enabled
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C
USE="-systemd"
VIDEO_CARDS="intel i965 virtualbox"
GRUB_PLATFORMS="efi-64"
L10N="pt-BR"
ACCEPT_LICENSE="*"
ACCEPT_KEYWORDS="~amd64"
EMERGE_DEFAULT_OPTS="--ask --jobs 2"
GENTOO_MIRRORS="https://gentoo.c3sl.ufpr.br/ http://gentoo.c3sl.ufpr.br/ rsync://gentoo.c3sl.ufpr.br/gentoo/"
source /var/lib/layman/make.conf

Veja também:


gentoo portage cpp


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!