---
title: FAQ do CachyOS e Guia de Resolução de Problemas
description: Perguntas frequentes e dicas
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 5
ai_translated: true
---

import ImageComponent from '~/components/image-component.astro';
import { Steps, Tabs, TabItem } from '@astrojs/starlight/components';

:::note
As seguintes perguntas e respostas aplicam-se ao CachyOS e a distribuições baseadas em Arch.

**Isto não pretende substituir a informação da Wiki do Arch Linux.**
:::

:::tip
Mantém-te atento a quaisquer anúncios oficiais do CachyOS no nosso [Fórum](https://discuss.cachyos.org/c/announcements/5), publicações no nosso [subreddit oficial](https://www.reddit.com/r/cachyos/) ou nos canais [Discord #announcements](https://discord.com/channels/862292009423470592/873309651364610118) e [#updates-repo](https://discord.com/channels/862292009423470592/871739561364033566) relativos a problemas conhecidos com pacotes ou atualizações que exijam intervenção manual.
:::

## Como Reportar um Problema ou Bug ao CachyOS

:::danger
Tem cuidado ao confiar em ajuda e comandos fornecidos por modelos de IA (como o ChatGPT) sem verificar a informação em fontes oficiais. Os modelos de IA podem, por vezes, fornecer informações incorretas ou enganadoras, especialmente em contextos técnicos. Cruza sempre a informação com documentação fidedigna ou recursos da comunidade.

Caso contrário, poderás acabar com um sistema completamente inutilizável ou piorar ainda mais o problema.
:::

:::tip
Lembra-te. No mundo Linux existe uma citação fantástica: "É muito provável que outra pessoa já tenha tido o mesmo problema antes de ti." Por isso, utiliza a função de pesquisa no Google, na Arch Wiki, ou no Fórum/Discord do CachyOS antes de reportares um problema, pois este já poderá ter sido resolvido.
:::

:::tip
Não te esqueças de usar o comando `tldr` para visualizar uma versão simplificada das páginas de manual (`man pages`) de comandos com os quais não estejas familiarizado. Exemplo:

Alguns dos comandos e descrições mais comuns para o git:
```bash
tldr git
```

Podes também combinar o `tldr` com um comando específico do git para obteres informações mais detalhadas sobre um parâmetro, por exemplo:
```bash
tldr git add
```
:::

### Locais para Abrir Relatórios

- [GitHub](https://github.com/CachyOS/distribution)
- [Fórum](https://discuss.cachyos.org/c/feedback/bugreports/10)
- **Discord:** [Fórum de Suporte](https://discord.com/channels/862292009423470592/1400865136373403708)
  - Antes de criar uma nova publicação, lê as [diretrizes de suporte](https://discord.com/channels/862292009423470592/1522310323250397274) fixadas no canal.
    - Ou, se achares que o teu problema pode ser resolvido rapidamente, utiliza o [canal #support](https://discord.com/channels/862292009423470592/862294383470051348)
- [Reddit](https://www.reddit.com/r/cachyos/)

### Sê Paciente e Respeitoso

A equipa e a comunidade do CachyOS são voluntários que trabalham nisto no seu tempo livre. Por favor, sê paciente e respeitoso ao interagir com eles. Fornecer um relatório de erro de alta qualidade é a melhor forma de ver o teu problema resolvido rapidamente.

Se fizeres uma pergunta vaga ou forneceres informações insuficientes, poderás receber uma resposta igualmente vaga ou nenhuma resposta.

Aqui está um exemplo:

- **Pergunta boa:**
  - Após uma atualização recente (a minha última atualização foi em DATA), o meu sistema não arranca e apresenta um ecrã preto. Tenho uma GPU NVIDIA (modelo). Tentei reverter o pacote `linux-cachyos` para a versão anterior, mas o problema persiste. Aqui está o output do `journalctl -b -1` e do `dmesg` a partir do ambiente live.
- **Pergunta má ou vaga:**
  - O meu sistema está estragado, por favor ajudem-me.
  <details>
  <summary>Caso contrário, poderás acabar por parecer o Abraham deste meme:</summary>
   <ImageComponent imgsrc={import('~/assets/images/abraham-meme.jpg')} />
  </details>

### Descreve o teu Problema

Aqui estão algumas coisas que deves perguntar a ti próprio:

- O que é que não está a funcionar?
- Reverter a versão do pacote X resolve o problema?
- Outras pessoas estão a ter este problema / já foi resolvido antes? (utiliza a função de pesquisa)
- O problema apareceu após uma atualização?
- Fizeste modificações por conta própria?
  - Exemplo: adicionar uma flag adicional num ficheiro modprobe
- Está relacionado com hardware? (ex: GPU, Wi-Fi)
- Está relacionado com software? (ex: aplicação específica, ambiente de desktop)
- É uma instalação recente ou o problema apareceu após algum tempo de uso?

## Como Recolher Logs

Existem várias formas de recolher logs do teu sistema. Aqui estão alguns exemplos e ferramentas que podes utilizar:

### Criar um relatório de erro geral
O CachyOS fornece uma excelente ferramenta para recolher logs do sistema chamada `cachyos-bugreport.sh`.
Esta ferramenta irá recolher logs de:
  - `dmesg`
  - `journalctl`
  - `inxi` (Para recolher informações de hardware)

Após a recolha dos logs, o utilizador será questionado se deseja carregá-los para o nosso website de paste.

Para executar este script, introduz o seguinte comando no terminal e partilha o link gerado no teu relatório:
  ```sh
  sudo cachyos-bugreport.sh
  ```

### Recolher logs de um programa que não inicia
Existem vários motivos pelos quais um programa gráfico pode não iniciar. A melhor forma de recolher logs para este tipo de problema é executar o programa a partir de um terminal. Desta forma, podes ver quaisquer mensagens de erro ou outputs que ajudem a diagnosticar o problema.

Por exemplo, se o Firefox não iniciar completamente, tenta executá-lo pelo terminal e procura por mensagens de erro:
  ```sh
  firefox
  ```

:::tip
  Se quiseres guardar o output num ficheiro de texto para facilitar a partilha, podes redirecionar o output desta forma:
    ```sh
    firefox &> firefox-log.txt
    ```
  Lembra-te de pressionar `CTRL + C` para terminar o processo após este falhar ao iniciar, para que o terminal escreva o output no ficheiro.
:::

### Verificar os últimos pacotes atualizados no pacman

Para obteres uma lista dos pacotes atualizados mais recentemente no teu sistema, podes utilizar o seguinte comando:

```bash
grep "\[ALPM\] upgraded" /var/log/pacman.log | tail -n 50
```

:::tip
Ajusta o parâmetro `-n` do tail para obteres mais ou menos linhas.
:::

### Atalhos de Teclado para Navegar no journalctl e dmesg

Atalhos mais comuns para navegar nos logs quando o `less` ou o modo de leitura humana está a ser utilizado:

`Seta para Cima e Seta para Baixo ou J e K` para fazer scroll para cima ou para baixo linha a linha.

`PageUp e PageDown ou Ctrl + B/D` para fazer scroll para cima ou para baixo uma página de cada vez.

`G ou Home` para saltar para o início do log.

`Shift + G ou End` para saltar para o fim do log.

### Usar o journalctl para Recolher Logs do Sistema

O comando `journalctl` é uma ferramenta extremamente útil para visualizar logs do sistema. Aqui estão algumas das combinações de comandos mais comuns e úteis.

#### Utilização Básica e Exemplos Comuns

:::tip
Combina várias opções para uma filtragem mais específica.
:::

<details>
<summary>Visualizar o log completo (do mais antigo para o mais recente):</summary>
```bash
journalctl
```
</details>

<details>
<summary>Visualizar logs apenas do arranque (boot) atual:</summary>
```bash
journalctl -b
```
</details>

<details>
<summary>Problemas de segurança e autenticação:</summary>
```bash
journalctl -u sshd -u polkit -b -0 | grep -i "fail\|error\|denied"
```
Procura por falhas de autenticação e negações de políticas de segurança.
</details>

<details>
<summary>Acompanhar os logs em tempo real:</summary>
```bash
journalctl -f
```
:::tip
Combina isto com outros filtros. Por exemplo:
```bash
# Acompanhar os logs do serviço Adguard Home:
journalctl -u adguardhome -f
```
:::
</details>

<details>
<summary>Problemas de áudio do arranque (boot) atual:</summary>
```bash
journalctl --user -u pipewire -u pipewire-pulse -u wireplumber -b 0
```
Visualizar logs dos serviços de áudio para resolver problemas de som.
</details>

<details>
<summary>Erros de memória (RAM):</summary>
```bash
journalctl -k | grep -i "memory\|ram"
```
Procura por corrupção de memória ou problemas de deteção.
</details>

<details>
<summary>Problemas de Bluetooth:</summary>
```bash
# Do arranque (boot) atual:
journalctl -u bluetooth -b 0
# Do arranque (boot) anterior:
journalctl -u bluetooth -b -1
```
</details>

##### Filtragem baseada no tempo
<details>

<summary>Visualizar logs dos últimos minutos/horas:</summary>
```bash
journalctl --since "10 minutes ago"
journalctl --since "1 hour ago"
journalctl --since "2024-01-15 14:30:00"
```
</details>

<details>
<summary>Visualizar logs de um intervalo de tempo específico:</summary>
```bash
journalctl --since "09:00" --until "10:00"
```
</details>

##### Filtrar por Prioridade e Serviço ou Programa

Os níveis de prioridade possíveis são: `debug`, `info`, `notice`, `warning`, `err`, `crit`, `alert`, `emerg`.

Ou utilizando números:

`0` equivale a `emerg`

`1` equivale a `alert`

`2` equivale a `crit`

`3` equivale a `err`

`4` equivale a `warning`

`5` equivale a `notice`

`6` equivale a `info`

e `7` equivale a `debug`.

<details>
<summary>Mostrar apenas mensagens de erro, críticas e de emergência:</summary>
```bash
journalctl -p err..emerg
```
:::tip
Podes combinar estes com os exemplos anteriores:

Exemplo:
```bash
journalctl -p err..emerg --since "9:00" --until "10:00"
```
:::
</details>

<details>
<summary>Mostrar logs de um serviço específico do sistema:</summary>
```bash title='Exemplos'
# Visualizar logs do serviço NetworkManager:
journalctl -u NetworkManager
# Visualizar logs do serviço GDM (GNOME Display Manager):
journalctl -u gdm
# Visualizar logs do serviço SDDM (Simple Desktop Display Manager):
journalctl -u sddm
```
</details>

<details>
<summary>Mostrar logs de um Process ID (PID) específico:</summary>
```bash
journalctl _PID=pid
# Exemplo:
journalctl _PID=3344
```
</details>

<details>
<summary>Mostrar logs de um executável específico:</summary>
```bash
journalctl path/to/executable
# Exemplo:
journalctl /usr/bin/firefox
```
</details>

### Utilizar o journalctl para Verificar Mensagens do Kernel

:::note
Quando usar `journalctl -k` vs `dmesg`:

- `journalctl -k` acede às mensagens do kernel guardadas no jornal do systemd (persistente entre reinícios se estiver configurado e oferece melhor integração com filtragem baseada no tempo e funcionalidades do jornal).
- `dmesg` lê o buffer circular atual do kernel (volátil, perde-se após o reinício).
:::

<details>
<summary>Visualização básica de mensagens do kernel:</summary>
```bash
journalctl -k
```
Mostra todas as mensagens do kernel no jornal, equivalente ao `dmesg` mas a partir da perspetiva do jornal.
</details>

<details>
<summary>Apenas mensagens do kernel do arranque (boot) atual:</summary>
```bash
journalctl -k -b 0
```
Exibe as mensagens do kernel apenas da sessão de arranque atual.
</details>

<details>
<summary>Mensagens do kernel do arranque anterior:</summary>
```bash
journalctl -k -b -1
```
Visualiza as mensagens do kernel do arranque anterior. Útil para diagnosticar falhas de arranque ou crashes.
</details>

<details>
<summary>Acompanhar novas mensagens do kernel em tempo real:</summary>
```bash
journalctl -k -f
```
Observa as mensagens do kernel à medida que ocorrem, ideal para monitorizar eventos de hardware ou o carregamento de controladores (drivers).
</details>

<details>
<summary>Procurar mensagens de controladores (drivers) específicos:</summary>
```bash
# Exemplos:
# Mensagens relacionadas com o GPU:
journalctl -k | grep -i "nvidia\|amd\|intel"
# Mensagens de dispositivos USB:
journalctl -k | grep -i "usb\|pci"
```
</details>

<details>
<summary>Filtragem de mensagens do kernel baseada no tempo:</summary>
```bash
journalctl -k --since "1 hour ago"
journalctl -k --since "09:00" --until "10:00"
```
Visualiza as mensagens do kernel de períodos de tempo específicos.
</details>

### Utilizar o dmesg para Mensagens do Kernel

O comando `dmesg` exibe o buffer circular do kernel, que contém mensagens do kernel sobre deteção de hardware, inicialização de controladores (drivers) e eventos do sistema.

#### Utilização Básica e Formatação

<details>
<summary>Visualizar todo o buffer de mensagens do kernel:</summary>
```bash
dmesg
```
</details>

<details>
<summary>Visualizar com carimbos de data/hora legíveis:</summary>
```bash
dmesg -T
```
</details>

<details>
<summary>Visualizar num paginador para uma leitura mais fácil:</summary>
```bash
dmesg | less
```
</details>

#### Filtrar por Nível de Prioridade

Semelhante ao journalctl, o dmesg permite filtrar mensagens por nível de prioridade.

<details>
<summary>Mostrar apenas erros e mensagens críticas:</summary>
```bash
dmesg -l err,crit,alert,emerg
```
Os níveis de prioridade possíveis são: `debug`, `info`, `notice`, `warning`, `err`, `crit`, `alert`, `emerg`.

Ou utilizando números:

`0` equivale a `emerg`

`1` equivale a `alert`

`2` equivale a `crit`

`3` equivale a `err`

`4` equivale a `warning`

`5` equivale a `notice`

`6` equivale a `info`

e `7` equivale a `debug`.
</details>

<details>
<summary>Visualizar as mensagens do kernel mais recentes:</summary>
```bash
dmesg -w
```
</details>

<details>
<summary>Procurar mensagens de hardware ou de controladores (drivers) específicos:</summary>
```bash
# Exemplos:
# Para procurar mensagens relacionadas com USB:
dmesg | grep -i usb | less
# Dispositivos Bluetooth:
dmesg | grep -i bluetooth
# Relacionado com NVIDIA:
dmesg | grep -i nvidia | less
# Dispositivos que falharam ao inicializar:
dmesg | grep -i "error\|failed" | less
```
</details>

##### Exemplos comuns para problemas específicos usando o dmesg

<details>
<summary>Quando um dispositivo USB não é reconhecido:</summary>
```bash
dmesg -w | grep -i usb
```
Depois, ligue o dispositivo e acompanhe as novas mensagens.
</details>

<details>
<summary>Problemas de inicialização do GPU:</summary>
```bash
dmesg | grep -i "nvidia\|amd\|intel\|radeon\|drm\|gpu" | less
```
</details>

<details>
<summary>Problemas de Wi-Fi ou do adaptador de rede:</summary>
```bash
dmesg | grep -i "wlan\|wifi\|network\|firmware" | tail -20
```
Verifique se há carregamentos de firmware em falta ou erros de controladores (drivers) que impeçam a sua placa de rede sem fios de funcionar.
</details>

<details>
<summary>Problemas de deteção de HDD/SSD:</summary>
```bash
dmesg | grep -i "sda\|sdb\|nvme\|scsi\|disk" | head -30
```
Utilize isto quando um dispositivo de armazenamento não está a ser detetado ou apresenta erros durante o arranque.
</details>

<details>
<summary>Bloqueios do sistema (freezes) ou kernel panics:</summary>
```bash
dmesg -T -l emerg,alert,crit,err | tail -30
```
Verifique as mensagens mais graves do kernel que ocorreram antes de um crash ou bloqueio do sistema.
</details>

<details>
<summary>Erros de memória (RAM):</summary>
```bash
dmesg | grep -i "memory\|ram"
```
Procure por corrupção de memória, problemas de deteção ou relatórios de erros ECC.
</details>

<details>
<summary>Eventos de dispositivos de áudio:</summary>
```bash
dmesg | grep -i "audio\|snd\|hda" | grep -i "error\|fail\|card"
```
Verifique se a sua placa de som está a ser detetada corretamente e se os controladores (drivers) estão a ser carregados devidamente.
</details>

<details>
<summary>Falhas no carregamento de módulos do kernel:</summary>
```bash
dmesg | grep -i "module\|init" | grep -i "error\|fail"
```
Quando controladores (drivers) de hardware específicos não estão a carregar ou estão a falhar na inicialização.
</details>

<details>
<summary>Monitorização em tempo real de eventos de hardware:</summary>
```bash
dmesg -w -l warn,err,crit,alert,emerg -T
```
Acompanhe continuamente novas mensagens importantes do kernel enquanto reproduz um problema.
</details>

<details>
<summary>Problemas de BIOS/UEFI e firmware:</summary>
```bash
dmesg | grep -i "bios\|uefi\|firmware\|efi"
```
Verifique problemas de compatibilidade entre o firmware do seu hardware e o kernel Linux.
</details>

## Instalação e Ambiente Live

### Por que razão o ISO live do CachyOS apenas inclui o KDE Plasma?

Escolhemos focar os nossos esforços de desenvolvimento e manutenção exclusivamente no ambiente de desktop KDE Plasma. Isto permite-nos entregar uma experiência de utilizador mais polida, estável e consistente no nosso ISO live.

O ambiente live destina-se principalmente à instalação do CachyOS ou à utilização do `cachy-chroot` para recuperação do sistema. Para uma forma segura de **testar** outros ambientes de desktop ou gestores de janelas, recomendamos vivamente que os experimente numa máquina virtual (VM).

### Por que razão o instalador demora tanto tempo a iniciar após clicar em "Launch Installer"?

:::caution
Certifique-se de que tem uma ligação à internet ativa/em execução, caso contrário, nada acontecerá após premir este botão.
:::

O instalador não está bloqueado. Está a executar um script de segundo plano necessário para preparar o seu sistema para a instalação. Este processo garante que os chaveiros (keyrings) e o relógio do seu sistema estão atualizados, o que ajuda a prevenir problemas comuns de instalação.

[Veja o script no GitHub](https://github.com/CachyOS/CachyOS-Live-ISO/blob/master/archiso/airootfs/usr/local/bin/calamares-online.sh) para compreender melhor o que ele faz.

<Steps>
  1. Remove ficheiros de chaveiro antigos.
  2. Atualiza os pacotes de chaveiros do Arch Linux e CachyOS para a versão mais recente.
  3. Inicializa e popula o chaveiro do pacman.
  4. Ativa a sincronização de tempo por rede.
  5. Verifica o tipo de arranque do seu sistema (UEFI ou BIOS/MBR) para solicitar ao utilizador a seleção de um carregador de arranque (bootloader) dependendo do tipo.
</Steps>

### Por que razão a minha instalação fica presa nos 33%?

Isto acontece quando o instalador tem dificuldade em descarregar os pacotes. Geralmente é um sinal de uma ligação à internet muito lenta ou instável. Por favor, verifique a sua ligação de rede e tente novamente.

## Recuperação do Carregador de Arranque

:::note
No caso de uma partição `/boot` eliminada, por favor crie uma nova seguindo o respetivo [esquema de partição](/pt/installation/installation_on_root#uefigpt) a partir do passo 5.
:::

### Passos para recuperar o seu carregador de arranque (bootloader)

:::tip
Se não tiver a certeza de como utilizar o `cachy-chroot`, por favor consulte primeiro a documentação do [CachyOS chroot Helper](/pt/features/cachy_chroot).
:::

<Steps>
    1. Inicie o sistema através do Live ISO do CachyOS.
    2. Abra um terminal e entre no sistema instalado (chroot) utilizando o comando `cachy-chroot`.

        ```bash
        sudo cachy-chroot
        ```
        Se o sistema estiver a utilizar BTRFS com o nosso preset, responda `y` (sim) no prompt:
         ```bash title='Exemplo'
          Do you want to use CachyOS BTRFS preset to auto mount root subvolume? y
          Do you want to mount additional partitions? · yes
          Enter the mount point for additional partition (e.g. /boot) type 'skip' to cancel:
          # Escreva /boot para systemd-boot, Limine ou rEFInd
          # Escreva /boot/efi para GRUB
         ```
    3. Siga as instruções abaixo para o carregador de arranque instalado e o tipo de sistema (UEFI ou MBR/BIOS).
        <Tabs>
            <TabItem label='GRUB'>
                Reinstale o GRUB com o seguinte comando:
                <Tabs>
                    <TabItem label='UEFI'>
                        ```bash
                        sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=cachyos
                        ```
                    </TabItem>
                    <TabItem label='MBR/BIOS'>
                        ```bash
                        sudo grub-install --target=i386-pc /dev/sdX # Replace sdX with your disk, e.g., sda
                        ```
                    </TabItem>
                </Tabs>
            </TabItem>
            <TabItem label='systemd-boot (apenas UEFI)'>
                Reinstale o systemd-boot com o seguinte comando:
                ```bash
                sudo bootctl install
                ```
            </TabItem>
            <TabItem label='Limine'>
                Reinstale o Limine com o seguinte comando:
                <Tabs>
                    <TabItem label='UEFI'>
                        ```bash
                        sudo limine-install
                        ```
                    </TabItem>
                    <TabItem label='MBR/BIOS'>
                        ```bash
                        sudo limine bios-install /dev/sdX # Replace sdX with your disk e.g. sda
                        ```
                    </TabItem>
                </Tabs>
            </TabItem>
            <TabItem label='rEFInd (apenas UEFI)'>
                Reinstale o rEFInd com o seguinte comando:
                ```bash
                sudo refind-install
                ```
            </TabItem>
        </Tabs>
    4. Reinstale o kernel do CachyOS:
        ```bash
        sudo pacman -Syu linux-cachyos linux-cachyos-headers
        ```
    5. Saia do cachy-chroot:
        ```bash
        exit
        ```
    6. Reinicie o sistema.
</Steps>

## Gestão de Pacotes e Atualizações

### Resolução de Problemas do Pacman

#### error: signature is invalid

Este erro indica um problema com a assinatura criptográfica de um pacote. Geralmente é causado por um espelho (mirror) desatualizado ou por um chaveiro (keyring) danificado no seu sistema.

Embora os mirrors se resolvam frequentemente sozinhos após um curto período, se o problema persistir, deve tentar uma das duas soluções seguintes.

<Tabs>

<TabItem label='Primeira Solução: Ressincronizar os Mirrors do Pacman'>

```sh
sudo pacman -Syu
```

</TabItem>

<TabItem label='Segunda Solução: Classificar os Mirrors'>

```sh title='Classificar os Mirrors'
sudo cachyos-rate-mirrors
```

</TabItem>

<TabItem label='Terceira Solução: Repor os Chaveiros (Keyrings)'>

Se a classificação dos mirrors não funcionar, é provável que os chaveiros (keyrings) do seu sistema estejam danificados.

- Abra o CachyOS Hello e navegue até **Troubleshooting**.
- Clique no botão Reset keyrings.

</TabItem>

</Tabs>

#### error: 404 Not Found

Este erro significa que o pacote que está a tentar instalar não está disponível no seu mirror atual. Isto acontece geralmente quando a sua base de dados de pacotes local está dessincronizada em relação aos repositórios remotos.

**Solução:**

Execute o seguinte comando para atualizar a sua base de dados de pacotes e realizar uma atualização completa do sistema. Isto garantirá que o seu sistema tenha conhecimento dos pacotes mais recentes disponíveis.

```sh
sudo pacman -Syu
# Depois, tente instalar novamente o pacote pretendido.
```

#### error: could not remove

Este erro ocorre quando a cache do pacman contém ficheiros que o sistema não consegue gerir automaticamente. Este é um problema comum que pode ser resolvido facilmente.

- Solution 1: Utilizar o CachyOS Hello.
  - A forma mais simples de resolver isto é com o CachyOS Hello. Abra-o, vá a **Troubleshooting** e clique no botão **Clear package cache**.

- Solution 2: Remover a cache manualmente.
  - Execute o seguinte comando para remover todos os pacotes órfãos da cache.
  ```sh
  sudo rm -r /var/cache/pacman/pkg/*
  ```

#### error: File is corrupted (invalid or corrupted package (PGP signature))

```sh
# Exemplo:
:: File /var/cache/pacman/pkg/python-charset-normalizer-3.4.0-1-any.pkg.tar.zst
is corrupted (invalid or corrupted package (PGP signature)).
```

Este erro indica tipicamente um problema com os chaveiros (keyrings) do pacman no seu sistema, que verificam a autenticidade dos pacotes. Os seguintes comandos irão repor e repovoar os chaveiros para resolver o problema.

```sh
sudo rm -rf /etc/pacman.d/gnupg/
sudo pacman-key --init
sudo pacman-key --populate

sudo pacman-key --recv-keys F3B607488DB35A47 --keyserver keyserver.ubuntu.com
sudo pacman-key --lsign-key F3B607488DB35A47

sudo rm -R /var/lib/pacman/sync
```

Se os passos acima não forem bem-sucedidos, o problema não está no seu chaveiro. Pode haver um problema com os seus espelhos (mirrors), pelo que pode selecionar mirrors funcionais e, em seguida, limpar a sua cache executando o seguinte:

```sh
sudo cachyos-rate-mirrors
sudo pacman -Scc
```

#### error: unable to lock database

Este erro ocorre quando outro processo do pacman já está em execução, o que bloqueia a base de dados para evitar a sua corrupção. Se o processo anterior falhou ou foi interrompido, o ficheiro de bloqueio `db.lck` pode não ter sido removido.

- Solution 1: Utilizar o CachyOS Hello
  - A forma mais simples de resolver isto é com a função **Remove db lock** no separador **Troubleshooting** do CachyOS Hello

- Solution 2: Remover o ficheiro de bloqueio manualmente
  - Se preferir não utilizar o CachyOS Hello, pode remover o ficheiro de bloqueio manualmente:

```sh
sudo rm /var/lib/pacman/db.lck
```

#### error: failed retrieving file ... Connection timed out

Poderá ver erros semelhantes a estes:

```text
# Exemplo de erros:
error: failed retrieving file '...' from ... : Connection timed out
error: failed retrieving file '...' from ... : Couldn't resolve host name
error: failed retrieving file '...' from ... : The requested URL returned error: 526
```

Estes erros indicam quase sempre um problema com os seus espelhos (mirrors) atuais. Podem estar lentos, temporariamente indisponíveis ou inacessíveis a partir da sua localização.

- Solution: A melhor forma de resolver isto é atualizar a sua lista de mirrors com espelhos mais rápidos e fiáveis.

```sh
sudo cachyos-rate-mirrors
# Posteriormente, pode atualizar o seu sistema com:
sudo pacman -Syu
```

:::tip
O comando `cachyos-rate-mirrors` testa os mirrors do CachyOS disponíveis com base na velocidade e no estado de sincronização, atualizando depois o seu ficheiro de lista de mirrors (`/etc/pacman.d/cachyos-mirrorlist`) com os que apresentam melhor desempenho.

Considere executá-lo periodicamente, especialmente se notar lentidão durante as atualizações do sistema.
:::

#### warning: local is newer than...

Este aviso aparece quando a versão de um pacote no seu sistema é mais recente do que a versão disponível nos repositórios oficiais. Isto pode acontecer se um mirror estiver desatualizado, se um pacote tiver sofrido um downgrade nos repositórios ou se um pacote tiver sido instalado a partir de uma fonte diferente.

- Solution: o comando `pacman -Syuu` realiza uma atualização completa do sistema e permite a realização de downgrades, o que resolverá o aviso ao sincronizar os seus pacotes locais com as versões do repositório.

```sh title='Para remover estes avisos, execute o seguinte comando:'
sudo pacman -Syuu
```

#### error: failed to commit transaction (conflicting files)

Este erro indica que o pacman está a tentar instalar ou atualizar um pacote que contém ficheiros já presentes no seu sistema, provenientes de uma fonte diferente. Esta é uma funcionalidade de segurança integrada para evitar danos no sistema.

- Solution: Pode resolver este problema removendo manualmente os ficheiros em conflito. Para mais informações e soluções, consulte a [Arch Wiki](https://wiki.archlinux.org/title/Pacman#%22Failed_to_commit_transaction_(conflicting_files)%22_error).

```sh title='Exemplo'
error: failed to commit transaction (conflicting files)
nvidia-utils: /usr/lib/environment.d/10-gsk.conf exists in filesystem
Errors occurred, no packages were upgraded.
 -> error installing repo packages
```

Para corrigir este exemplo específico, deve remover o ficheiro em conflito e, em seguida, executar novamente o seu comando de atualização.

```sh
sudo rm /usr/lib/environment.d/10-gsk.conf
```

#### ERROR: module not found: 'nvidia', 'nvidia_modeset', ...

```sh title='Exemplo'
==> ERROR: module not found: 'nvidia'
==> ERROR: module not found: 'nvidia_modeset'
==> ERROR: module not found: 'nvidia_uvm'
==> ERROR: module not found: 'nvidia_drm'
```

**Duas razões para este erro:**

1) Uma vez que o "Early Module Loading" está sempre ativado no **chwd**, o **mkinitcpio** espera constantemente a presença dos módulos NVIDIA; este erro surge quando esses módulos estão em falta.

2) Podem estar em falta os módulos NVIDIA para outros kernels instalados no seu sistema.

```sh title='Install the following package to fix this error'
sudo pacman -S nvidia
```

### Problemas Específicos de Software

#### O Discord solicita uma atualização que não está disponível nos repositórios.

<br />
<ImageComponent imgsrc={import('~/assets/images/discord-update.png')} />

Isto acontece porque o Discord utiliza o seu próprio sistema de atualização, que se adianta aos repositórios oficiais. Foi lançada uma nova versão da aplicação, mas esta ainda não foi empacotada para os nossos mirrors.

Para contornar este problema, siga o [guia de correção da Arch Wiki](<https://wiki.archlinux.org/title/Discord#Discord_asks_for_an_update_not_yet_available_in_the_repository>).

### Questões Gerais

#### Recentemente, o meu sistema está a demorar muito tempo a arrancar

Uma vez que este problema pode ser causado por muitas coisas diferentes. Vamos começar pelo básico, verificando o systemd-analyze para ver onde o sistema está a ter problemas:

Abra um terminal e execute um dos dois seguintes comandos:

```sh
systemd-analyze blame
```

ou:

```sh
systemd-analyze critical-chain
```

Se o output mostrar `cachyos-rate-mirrors.service` a demorar muito tempo a executar. Então deve executar o seguinte comando para mascarar este serviço, o que impedirá que este seja executado no arranque:

```sh
systemctl mask cachyos-rate-mirrors
systemctl mask cachyos-rate-mirrors.timer
```

#### Qual é a origem do CachyOS e por que se chama "CachyOS"?

O CachyOS deve o seu nome ao agendador (scheduler) "Cachy", que era o nome original do [agendador cacULE](https://github.com/hamadmarri/cacule-cpu-scheduler), um agendador de CPU para o kernel Linux.

O projeto teve origem em 2020-2021 quando o ptr1337 (um dos fundadores do CachyOS) estava a testar e a colaborar com um programador chamado Hamad no agendador cacULE. Quando decidiram criar uma distribuição Linux otimizada baseada em Arch Linux com pacotes otimizados para x86-64-v3, chamaram-lhe "CachyOS" em homenagem ao agendador que os uniu.

#### Qual é o intervalo de atualização dos pacotes -git?

Geralmente uma vez à segunda-feira, embora possam existir exceções.

#### Os pacotes -bin nos repositórios do CachyOS beneficiam das mesmas otimizações de desempenho?

Não. Os pacotes `-bin` são binários pré-compilados e não incluem as mesmas otimizações de desempenho que os pacotes baseados em código-fonte nos repositórios do CachyOS.

#### Como desativar a animação de carregamento do sistema (Plymouth)

:::note[Isto pode resolver problemas de ecrã preto em alguns sistemas, especialmente naqueles com GPUs NVIDIA antigas.]
:::

Para desativar a animação de carregamento inicial, precisa de editar a sua [configuração do gestor de arranque (bootloader)](/pt/configuration/boot_manager_configuration) e adicionar os seguintes parâmetros de kernel:

```sh
plymouth.enable=0 disablehooks=plymouth
```

:::note[systemd-boot, GRUB e Limine requerem a regeneração das imagens initramfs]
systemd-boot: `sudo sdboot-manage gen`

GRUB: `sudo grub-mkconfig -o /boot/grub/grub.cfg`

Limine: `sudo limine-mkinitcpio`
:::

#### Submeter pedidos de pacotes ao CachyOS

O CachyOS oferece uma lista extensa de pacotes do AUR pré-compilados, que são comummente utilizados.
Os utilizadores podem criar pedidos para pacotes do AUR das seguintes formas:

Se pretender que adicionemos um pacote, pode submeter um pedido no GitHub ou no fórum.

- [GitHub](https://github.com/CachyOS/distribution/issues)
- [Fórum](https://discuss.cachyos.org/c/feedback/repository/11)
- [Canal de feedback do Discord](https://discord.com/channels/862292009423470592/1150723027986813018)

## Segurança e Boas Práticas

### Práticas de Segurança no AUR

O AUR oferece uma vasta seleção, mas a segurança é primordial. Aqui está um guia conciso para uma utilização segura do AUR no seu sistema CachyOS.

* **Compreenda o PKGBUILD:** É o script de compilação. Conheça a sua estrutura, variáveis (`source`, `pkgname`) e funções (`build()`, `package()`).
* **Verifique os links das fontes:** Confirme sempre se os URLs em `source` apontam para sites oficiais do projeto ou repositórios fidedignos. Evite links suspeitos ou pessoais.
* **Reveja os passos de instalação:** Inspecione onde os ficheiros são instalados (função `package()`) e se existem comandos invulgares ou que toquem em áreas sensíveis do sistema. Verifique também os scripts `.install`.
* **Pesquise sobre o mantenedor:** Verifique o histórico do mantenedor no AUR para identificar problemas de segurança passados ou atividades suspeitas.
* **Verifique Checksums e PGP:** Absolutamente crucial! Confirme se todos os checksums (SHA256, BLAKE2b, etc.) coincidem com o upstream. Utilize assinaturas PGP (`validpgpkeys`) para autenticidade sempre que disponíveis.
* **Tenha cautela com pacotes `-bin`:** Estes utilizam binários pré-compilados, o que significa que não pode inspecionar o código-fonte. Aplique o máximo de escrutínio às suas origens e integridade.
* **Leia os comentários da comunidade:** Verifique os comentários na página do AUR para avisos, problemas ou informações de outros utilizadores.
* **Nunca ignore as verificações de integridade:** Utilizar `--skipinteg` ou flags semelhantes ignora todas as verificações de segurança. Não o faça.
* **Controle o seu AUR Helper:** Entenda como o seu helper (`yay`, `paru`) funciona. Certifique-se de que ele lhe mostra o PKGBUILD e as suas diferenças (diffs), ou compile manualmente com o `makepkg`.
* **Avalie a necessidade:** Antes de instalar, questione se precisa realmente deste pacote do AUR ou se existe uma alternativa nos repositórios oficiais.
* **Mantenha o seu sistema atualizado:** Execute regularmente `sudo pacman -Syu` para garantir que todos os componentes do sistema, incluindo o `pacman` e o `makepkg`, têm as últimas correções de segurança.

Mantenha-se vigilante para conservar o seu sistema baseado em Arch seguro!

### Manutenção Regular do CachyOS

Siga a Arch Wiki para isto: https://wiki.archlinux.org/title/System_maintenance

### Escolher um Gestor de Pacotes Gráfico (GUI)

Embora os gestores de pacotes gráficos ofereçam conveniência, alguns são conhecidos por causar problemas graves em sistemas rolling-release como o CachyOS e devem ser evitados para gerir pacotes do sistema.

- **Pamac:** É conhecido por lidar incorretamente com certas tarefas de gestão, como corromper os chaveiros (keyrings) de pacotes do sistema. Isto pode levar a erros de assinatura PGP que o impedem de atualizar o sistema.
- **Discover (KDE) e GNOME Software Center:** Estas lojas de aplicações utilizam o backend PackageKit. Embora sejam geralmente seguras para gerir Flatpaks, utilizá-las para instalar ou atualizar **pacotes do sistema** é arriscado. Os gestores baseados em PackageKit também podem ser instáveis ou propensos a falhas, o que pode deixar o seu sistema num estado danificado após uma transação mal-sucedida.

Para máxima estabilidade e fiabilidade, **recomendamos vivamente** a gestão de pacotes do sistema através da linha de comandos com o `pacman`.

Se preferir uma interface gráfica, front-ends como o **[Shelly](</pt/configuration/post_install_setup/#updating-the-system>)** ou o **CachyOS Package Installer** são considerados alternativas seguras, pois funcionam como wrappers mais diretos para as funcionalidades do pacman.
