Skip to content

bsshenrique/my-awesome-linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 

Repository files navigation

My Awesome Linux

GitHub last commit (branch)

My Awesome Linux é um repositório pessoal descrevendo minha visão sobre o uso do Linux como desktop.

Tip

Cada distribuição Linux tem a sua própria filosofia e é focada em um propósito.
Teste diferentes distribuições até encontrar a que você julgar ideal.

Por exemplo, considero:

O Linux é amplamente sustentado por diversas comunidades.
Se você é um entusiasta, veja alguns sites úteis:

Tópicos

Arch Linux

Instalação

Important

Evite tutoriais, seu dispositivo e uso certamente são diferentes de outros.
Utilize a documentação de instalação ou o archinstall para uma instalação guiada.
O artigo abaixo complementa, mas não substitui a documentação de instalação.

Particionamento do dispositivo

Usando o GPT fdisk, o layout abaixo será construído.

Partição Setor Tipo Dispositivo Nome Montagem Formato
1 default à +1GiB EF00 /dev/device1 EFI /mnt/boot FAT32
2 default à default 8304 /dev/device2 system /mnt BTRFS
# Usando o gdisk
gdisk /dev/device

# Usando o sgdisk
sgdisk --zap-all \
  --new=1:0:+1GiB --typecode=1:EF00 --change-name=1:EFI \
  --new=2:0:0 --typecode=2:8304 --change-name=2:system \
  --print \
  /dev/device

Note

O layout utilizado para os subvolumes é o mesmo usado pelo archinstall e sugerido pelo Snapper.
Esse layout garante um isolamento eficiente dos subvolumes.

mkfs.fat -F 32 -n EFI -v /dev/device1
mkfs.btrfs --label system -v /dev/device2

mount LABEL=system -t btrfs /mnt

btrfs subvolume create /mnt/{@,@home,@log,@pkg,@.snapshots}

umount -R /mnt

MOUNT_OPTIONS="X-mount.mkdir,defaults,compress=zstd:1,noatime"

mount -o $MOUNT_OPTIONS,subvol=@ -t btrfs LABEL=system /mnt
mount -o $MOUNT_OPTIONS,subvol=@home -t btrfs LABEL=system /mnt/home
mount -o $MOUNT_OPTIONS,subvol=@log -t btrfs LABEL=system /mnt/var/log
mount -o $MOUNT_OPTIONS,subvol=@pkg -t btrfs LABEL=system /mnt/var/cache/pacman/pkg
mount -o $MOUNT_OPTIONS,subvol=@.snapshots -t btrfs LABEL=system /mnt/.snapshots
mount -m -t vfat -o dmask=0027,fmask=0137 /dev/device1 /mnt/boot

Pacotes essenciais

Além dos pacotes essenciais, instale o microcode correspondente.

pacstrap -K /mnt amd-ucode base linux linux-firmware nano networkmanager

Localização

nano /etc/locale.gen
# Remova o comentário de "en_US.UTF-8 UTF-8" e "pt_BR.UTF-8 UTF-8"

locale-gen
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "KEYMAP=br-abnt2" >> /etc/vconsole.conf

Tip

Altere as configurações de formato utilizando o ambiente gráfico após a instalação do sistema.

Boot loader

Instale o systemd-boot utilizando o comando bootctl install.

Configure o esp/loader/loader.conf conforme o exemplo loader configuration.

default       arch.conf
timeout       4
console-mode  max
editor        no

Adicione a entry esp/loader/entries/arch.conf conforme o exemplo adding loaders.

title   Arch Linux
linux   /vmlinuz-linux
initrd  /amd-ucode.img
initrd  /initramfs-linux.img
options root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rootflags=subvol=@ rw

Important

Ao usar algum microcode, como a amd-ucode.img, deve-se sempre referenciá-lo antes do initrd principal.

Para utilizar um subvolume como um ponto de montagem, faça o apontamento no loader.
Confira o exemplo mounting subvolume as root.

Tip

UUID, PARTUUID ou semelhante são coisas diferentes.

É possível consultar as identificações de /dev/root_partition usando:
ls -l /dev/disk/by-*
blkid /dev/root_partition

Também é possível usar diretamente o caminho do dispositivo:
options root=/dev/root_partition rw

Valide a configuração bootclt list.
Realize o umount -R /mnt e reinicie o sistema.

Pós-instalação

Configurações básicas

Instale alguns dos pacotes básicos:

base-devel
btop
btrfs-progs
curl
fastfetch
firefox
git
gnome
gnome-tweaks
less
noto-fonts
noto-fonts-emoji
noto-fonts-extra
pipewire
pipewire-alsa
pipewire-audio
pipewire-jack
pipewire-pulse
power-profiles-daemon
reflector
smartmontools
sudo
wget
which
wireplumber
xdg-utils
zip

O root deve ser usado apenas em tarefas específicas ao root.
Crie um novo usuário e permita que o grupo wheel acesse o sudo.
Alguns outros exemplos: sudo.

useradd -m -G wheel -s /bin/bash usuario
passwd usuario

sudo EDITOR=nano visudo
# Remova o comentário
# %wheel      ALL=(ALL:ALL) ALL

Utilize o reflector para atualizar a mirror list.

sudo reflector \
  --country BR,US \
  --latest 16 \
  --protocol https \
  --save /etc/pacman.d/mirrorlist \
  --sort rate \
  --verbose

Defina os hosts em /etc/hosts:

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

Ative a exibição do número de linhas no nano.
echo "set linenumbers" > ~/.nanorc

sudo systemctl enable gdm.service
sudo systemctl enable NetworkManager
reboot

Drivers

Leia o artigo AMDGPU e entenda o que é necessário.
Os pacotes necessários provavelmente serão: lib32-mesa, lib32-vulkan-radeon, mesa e vulkan-radeon.

Configure também o lm_sensors.

Shell

Consulte o artigo shell.

GNOME

Instale o Extension Manager pelo GNOME Software (Flathub).

Instale e/ou ative as extensões:
Cliboard Indicator;
Removable Drive Menu;
System Monitor.

Firewall

Consulte o artigo firewall.

Swap

Consulte o artigo swap.

Logs

Consulte o artigo logs.

pacman

Edite o arquivo /etc/pacman.conf:

# Habilite as opções
Color
VerbosePkgLists

# Easter egg, opcional
ILoveCandy

Exemplos básicos para administrar o pacman:

du -hs /var/cache/pacman/pkg/   # Verifica o espaço consumido pelo cache dos pacotes

sudo pacman -Rs                 # Remove um pacote e suas dependências não exigidas por outros pacotes
sudo pacman -Rns                # Remove também os arquivos de configuração

sudo pacman -S pacote           # Instala um pacote
sudo pacman -Sc                 # Remove do cache versões antigas dos pacotes instalados
sudo pacman -Scc                # Remove todos os pacotes do cache
pacman -Ss pacote               # Busca um pacote no repositório remoto
sudo pacman -Syu                # Atualiza o sistema e todos os pacotes

pacman -Qs pacote               # Lista um pacote instalado
pacman -Qdqt                    # Lista dependências que não são requeridas por nenhum pacote
sudo pacman -R $(pacman -Qdqt)  # Remove os pacotes listados acima

Sistemas de Arquivos

Consulte o artigo sistemas de arquivos.

Virtualização

Máquinas virtuais e containers proporcionam ambientes controlados, de rápida implementação e descartáveis.

Container

Para utilizar containers, uma maneira bem simples é por meio do Docker:
sudo pacman -S docker
sudo systemctl enable docker.service
sudo systemctl start docker.service
sudo usermod -aG docker $USER

Encerre a sessão e em seguida entre novamente.

Máquinas virtuais

Consulte o artigo máquinas virtuais.

About

Visão pessoal descrevendo o Linux no ambiente Desktop

Topics

Resources

Stars

Watchers

Forks

Contributors