---
title: FAQ и руководство по устранению неполадок CachyOS
description: Часто задаваемые вопросы и советы
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 5
---

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

:::note
Следующие вопросы и ответы относятся к CachyOS и дистрибутивам на основе Arch.

**Этот материал не предназначен для замены информации на Arch Linux Wiki.**
:::

:::tip
Следите за официальными объявлениями от CachyOS на нашем [Форуме](https://discuss.cachyos.org/c/announcements/5), в постах на Reddit в нашем [официальном сабреддите](https://www.reddit.com/r/cachyos/) или в [Discord #announcements](https://discord.com/channels/862292009423470592/873309651364610118) и [#updates-repo](https://discord.com/channels/862292009423470592/871739561364033566) относительно известных проблем с пакетами или обновлений, требующих ручного вмешательства.
:::

## Как сообщить о проблеме или ошибке в CachyOS

:::danger
Будьте осторожны, полагаясь на помощь и команды, предоставляемые моделями ИИ (например, ChatGPT), не проверив информацию из официальных источников. Модели ИИ иногда могут предоставлять неверную или вводящую в заблуждение информацию, особенно в технических контекстах. Всегда сверяйтесь с доверенной документацией или ресурсами сообщества.

В противном случае вы можете полностью сломать систему или усугубить проблему.
:::

:::tip
Помните. В мире Linux есть замечательная цитата: «Скорее всего, кто-то до вас уже сталкивался с той же проблемой». Поэтому, пожалуйста, воспользуйтесь поиском в Google, на Arch Wiki или на форуме/Discord'е CachyOS, прежде чем сообщать о проблеме, потому что она, возможно, уже решена.
:::

:::tip
Не забывайте использовать команду tldr для просмотра упрощённой версии man-страниц для команд, с которыми вы не знакомы. Пример:

Некоторые из самых распространённых команд и описаний для git:
```bash
tldr git
```

Вы также можете комбинировать tldr с конкретной командой git, чтобы получить более подробную информацию о параметре, например:
```bash
tldr git add
```
:::

### Куда сообщать

- [Github](https://github.com/CachyOS/distribution)
- [Форум](https://discuss.cachyos.org/c/feedback/bugreports/10)
- **Discord:** [Форум поддержки](https://discord.com/channels/862292009423470592/1400865136373403708)
  - Прежде чем создавать новый пост, пожалуйста, убедитесь, что вы прочитали [Правила и информацию о поддержке](https://discord.com/channels/862292009423470592/1402210965700739082), закреплённые в канале.
    - Или, если вы думаете, что вашу проблему можно решить быстро, используйте канал [#support](https://discord.com/channels/862292009423470592/862294383470051348)
- [Reddit](https://www.reddit.com/r/cachyos/)

### Будьте терпеливы и уважительны

Команда и сообщество CachyOS — это волонтёры, которые работают над проектом в своё свободное время. Пожалуйста, будьте терпеливы и уважительны при общении с ними. Предоставление качественного отчёта об ошибке — лучший способ быстро решить вашу проблему.

Если вы зададите расплывчатый вопрос или предоставите недостаточную информацию, то можете получить такой же расплывчатый ответ или не получить его вовсе.

Вот пример:

- **Хороший вопрос:**
  - После недавнего обновления (последнее обновление было ДАТА) моя система не загружается, показывая чёрный экран. У меня видеокарта NVIDIA (модель). Я пытался откатить пакет `linux-cachyos` до предыдущей версии, но проблема остаётся. Вот вывод команд `journalctl -b -1` и `dmesg` из live-окружения.
- **Плохой или расплывчатый вопрос:**
  - Моя система сломана, помогите.
  <details>
  <summary>Иначе вы можете выглядеть как Авраам из этого мема:</summary>
   <ImageComponent imgsrc={import('~/assets/images/abraham-meme.jpg')} />
  </details>

### Опишите вашу проблему

Вот несколько вопросов, которые вы должны задать себе:

- Что не работает?
- Решает ли проблему откат пакета X?
- Использовали ли вы поиск для поиска аналогичных проблем?
- Появилась ли проблема после обновления?
- Вносили ли вы изменения самостоятельно?
  - Пример: `Добавление дополнительного флага в файл modprobe`
- Связана ли проблема с оборудованием? (например, видеокарта, Wi-Fi и т.д.)
- Связана ли она с программным обеспечением? (например, конкретное приложение, окружение рабочего стола и т.д.)
- Это свежая установка, или проблема появилась после некоторого времени использования?

## Как собирать логи

Существует много способов собрать логи с вашей системы. Вот несколько примеров и инструментов, которые вы можете использовать:

### Создание общего отчёта об ошибке
- CachyOS предоставляет отличный инструмент для сбора логов системы под названием `cachyos-bugreport.sh`.
  - Этот инструмент соберёт логи из:
    - `dmesg`
    - `journalctl`
    - `inxi` (для сбора информации об оборудовании)
  - Когда логи будут собраны, пользователю будет предложено решить, загружать ли их на наш сайт для вставки текста.
  - Выполните следующую команду в терминале и вставьте полученную ссылку с багами в свою тему:
    ```sh
    sudo cachyos-bugreport.sh
    ```

### Сбор логов программы, которая не запускается
- Программа X больше не запускается:
  - Существует много причин, по которым графическая программа может не запускаться. Лучший способ собрать логи для такого рода проблем — запустить программу из терминала. Таким образом, вы сможете увидеть любые сообщения об ошибках или вывод, которые могут помочь диагностировать проблему.
  - Пример:
    ```sh
    firefox
    ```
    - Если Firefox не запустится, вы можете увидеть сообщение об ошибке в терминале, которое поможет определить проблему.
    :::tip
    Если вы хотите сохранить вывод в текстовый файл для удобства обмена, вы можете перенаправить вывод следующим образом:
    ```sh
    firefox &> firefox-log.txt
    ```
    Не забудьте нажать `CTRL + C`, чтобы прервать процесс после того, как он не запустится, чтобы терминал записал вывод в файл.
    :::

### Проверка последних обновлённых пакетов в pacman.

Чтобы получить список самых недавно обновлённых пакетов в вашей системе, вы можете использовать следующую команду:

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

:::tip
Измените параметр `-n` у tail, чтобы получить больше или меньше строк.
:::

### Горячие клавиши для навигации в journalctl и dmesg

Самые распространённые горячие клавиши для навигации по логам, когда используется less или человекочитаемый режим:

`Стрелки вверх и вниз` или `J и K` — для прокрутки вверх или вниз по одной строке.

`PageUp и PageDown` или `Ctrl + B/D` — для прокрутки вверх или вниз на одну страницу.

`G` или `Home` — для перехода в начало лога.

`Shift + G` или `End` — для перехода в конец лога.

### Использование journalctl для сбора системных логов

Команда `journalctl` — чрезвычайно полезный инструмент для просмотра системных логов. Вот некоторые из наиболее распространённых и полезных комбинаций команд.

#### Основное использование и частые примеры

:::tip
Комбинируйте несколько опций для более точной фильтрации.
:::

<details>
<summary>Просмотреть весь лог (от старых записей к новым):</summary>
```bash
journalctl
```
</details>

<details>
<summary>Просмотреть логи только с текущей загрузки:</summary>
```bash
journalctl -b
```
</details>

<details>
<summary>Проблемы безопасности и аутентификации:</summary>
```bash
journalctl -u sshd -u polkit -b -0 | grep -i "fail\|error\|denied"
```
Искать сбои аутентификации и отказы в доступе по политикам безопасности.
</details>

<details>
<summary>Слежение за логами в реальном времени:</summary>
```bash
journalctl -f
```
:::tip
Комбинируйте это с другими фильтрами. Например:
```bash
# Слежение за логами службы Adguard Home:
journalctl -u adguardhome -f
```
:::
</details>

<details>
<summary>Проблемы со звуком с текущей загрузки</summary>
```bash
journalctl --user -u pipewire -u pipewire-pulse -u wireplumber -b 0
```
Просмотреть логи аудиосервисов для устранения проблем со звуком.
</details>

<details>
<summary>Ошибки памяти (ОЗУ):</summary>
```bash
journalctl -k | grep -i "memory\|ram"
```
Искать повреждения памяти или проблемы с её обнаружением.
</details>

<details>
<summary>Проблемы, связанные с Bluetooth:</summary>
```bash
# С текущей загрузки:
journalctl -u bluetooth -b 0
# С предыдущей загрузки:
journalctl -u bluetooth -b -1
```
</details>

##### Фильтрация по времени
<details>

<summary>Просмотреть логи за последние несколько минут/часов:</summary>
```bash
journalctl --since "10 minutes ago"
journalctl --since "1 hour ago"
journalctl --since "2024-01-15 14:30:00"
```
</details>

<details>
<summary>Просмотреть логи за определённый промежуток времени:</summary>
```bash
journalctl --since "09:00" --until "10:00"
```
</details>

##### Фильтрация по приоритету и службе или программе

Возможные уровни приоритета: `debug`, `info`, `notice`, `warning`, `err`, `crit`, `alert`, `emerg`.

Или с использованием чисел:

`0` соответствует `emerg`

`1` соответствует `alert`

`2` соответствует `crit`

`3` соответствует `err`

`4` соответствует `warning`

`5` соответствует `notice`

`6` соответствует `info`

и `7` соответствует `debug`.

<details>
<summary>Показать только сообщения об ошибках, критические и чрезвычайные сообщения:</summary>
```bash
journalctl -p err..emerg
```
:::tip
Вы можете комбинировать их с предыдущими примерами:

Пример:
```bash
journalctl -p err..emerg --since "9:00" --until "10:00"
```
:::
</details>

<details>
<summary>Показать логи от определённой системной службы:</summary>
```bash title='Примеры'
# Просмотреть логи от службы NetworkManager:
journalctl -u NetworkManager
# Просмотреть логи от службы GDM (GNOME Display Manager):
journalctl -u gdm
# Просмотреть логи от службы SDDM (Simple Desktop Display Manager):
journalctl -u sddm
```
</details>

<details>
<summary>Показать логи от определённого ID процесса (PID):</summary>
```bash
journalctl _PID=pid
# Пример:
journalctl _PID=3344
```
</details>

<details>
<summary>Показать логи от определённого исполняемого файла:</summary>
```bash
journalctl /путь/к/исполняемому/файлу
# Пример:
journalctl /usr/bin/firefox
```
</details>

### Использование journalctl для проверки сообщений ядра

:::note
Когда использовать `journalctl -k` в сравнении с `dmesg`:

- `journalctl -k` получает доступ к сообщениям ядра, хранящимся в журнале systemd (сохраняются между перезагрузками, если это настроено, и предлагает лучшую интеграцию с фильтрацией по времени и другими функциями журнала).
- `dmesg` считывает текущий кольцевой буфер ядра (непостоянный, теряется после перезагрузки).
:::

<details>
<summary>Просмотр основных сообщений ядра:</summary>
```bash
journalctl -k
```
Показывает все сообщения ядра из журнала, что эквивалентно `dmesg`, но с точки зрения журнала.
</details>

<details>
<summary>Только сообщения ядра текущей загрузки:</summary>
```bash
journalctl -k -b 0
```
Отображает сообщения ядра только для текущей сессии загрузки.
</details>

<details>
<summary>Сообщения ядра предыдущей загрузки:</summary>
```bash
journalctl -k -b -1
```
Просмотр сообщений ядра от предыдущей загрузки. Полезно для диагностики сбоев при загрузке или падений системы.
</details>

<details>
<summary>Отслеживание новых сообщений ядра в реальном времени:</summary>
```bash
journalctl -k -f
```
Наблюдайте за сообщениями ядра по мере их появления. Отлично подходит для мониторинга событий оборудования или загрузки драйверов.
</details>

<details>
<summary>Поиск сообщений от конкретных драйверов:</summary>
```bash
# Примеры:
# Сообщения, связанные с ГП:
journalctl -k | grep -i "nvidia\|amd\|intel"
# Сообщения USB-устройств:
journalctl -k | grep -i "usb\|pci"
```
</details>

<details>
<summary>Фильтрация сообщений ядра по времени:</summary>
```bash
journalctl -k --since "1 hour ago"
journalctl -k --since "09:00" --until "10:00"
```
Просмотр сообщений ядра за определённые промежутки времени.
</details>

### Использование dmesg для сообщений ядра

Команда `dmesg` отображает кольцевой буфер ядра, который содержит сообщения от ядра об обнаружении оборудования, инициализации драйверов и системных событиях.

#### Основное использование и форматирование

<details>
<summary>Просмотр всего буфера сообщений ядра:</summary>
```bash
dmesg
```
</details>

<details>
<summary>Просмотр с читаемыми временными метками:</summary>
```bash
dmesg -T
```
</details>

<details>
<summary>Просмотр в пейджере для удобства чтения:</summary>
```bash
dmesg | less
```
</details>

#### Фильтрация по уровню приоритета

Как и journalctl, dmesg позволяет фильтровать сообщения по уровню приоритета.

<details>
<summary>Показать только ошибки и критические сообщения:</summary>
```bash
dmesg -l err,crit,alert,emerg
```
Возможные уровни приоритета: `debug`, `info`, `notice`, `warning`, `err`, `crit`, `alert`, `emerg`.

Или с использованием чисел:

`0` соответствует `emerg`

`1` соответствует `alert`

`2` соответствует `crit`

`3` соответствует `err`

`4` соответствует `warning`

`5` соответствует `notice`

`6` соответствует `info`

и `7` соответствует `debug`.
</details>

<details>
<summary>Просмотр самых последних сообщений ядра:</summary>
```bash
dmesg -w
```
</details>

<details>
<summary>Поиск сообщений от конкретного оборудования или драйверов:</summary>
```bash
# Примеры:
# Поиск сообщений, связанных с USB:
dmesg | grep -i usb | less
# Bluetooth-устройства:
dmesg | grep -i bluetooth
# Связанное с NVIDIA:
dmesg | grep -i nvidia | less
# Устройства, которые не удалось инициализировать:
dmesg | grep -i "error\|failed" | less
```
</details>

##### Распространенные примеры для конкретных проблем с использованием dmesg

<details>
<summary>Когда USB-устройство не распознаётся:</summary>
```bash
dmesg -w | grep -i usb
```
Затем подключите устройство и следите за новыми сообщениями.
</details>

<details>
<summary>Проблемы с инициализацией ГП:</summary>
```bash
dmesg | grep -i "nvidia\|amd\|intel\|radeon\|drm\|gpu" | less
```
</details>

<details>
<summary>Проблемы с WiFi или сетевым адаптером:</summary>
```bash
dmesg | grep -i "wlan\|wifi\|network\|firmware" | tail -20
```
Проверьте наличие отсутствующих прошивок или ошибок драйверов, которые мешают работе вашей беспроводной карты.
</details>

<details>
<summary>Проблемы с обнаружением HDD/SSD:</summary>
```bash
dmesg | grep -i "sda\|sdb\|nvme\|scsi\|disk" | head -30
```
Используйте это, когда накопитель не обнаруживается или показывает ошибки во время загрузки.
</details>

<details>
<summary>Зависания системы или паника ядра:</summary>
```bash
dmesg -T -l emerg,alert,crit,err | tail -30
```
Проверьте самые серьезные сообщения ядра, которые произошли до сбоя или зависания системы.
</details>

<details>
<summary>Ошибки памяти (ОЗУ):</summary>
```bash
dmesg | grep -i "memory\|ram"
```
Ищите сообщения о повреждении памяти, проблемах с обнаружением или отчёты об ошибках ECC.
</details>

<details>
<summary>События аудиоустройств:</summary>
```bash
dmesg | grep -i "audio\|snd\|hda" | grep -i "error\|fail\|card"
```
Проверьте, правильно ли обнаруживается ваша звуковая карта и корректно ли загружаются драйверы.
</details>

<details>
<summary>Сбои загрузки модулей ядра:</summary>
```bash
dmesg | grep -i "module\|init" | grep -i "error\|fail"
```
Когда определённые драйверы оборудования не загружаются или не могут инициализироваться.
</details>

<details>
<summary>Мониторинг событий оборудования в реальном времени:</summary>
```bash
dmesg -w -l warn,err,crit,alert,emerg -T
```
Постоянно отслеживайте новые важные сообщения ядра, пока вы воспроизводите проблему.
</details>

<details>
<summary>Проблемы с BIOS/UEFI и прошивкой:</summary>
```bash
dmesg | grep -i "bios\|uefi\|firmware\|efi"
```
Проверьте наличие проблем совместимости между прошивкой вашего оборудования и ядром Linux.
</details>

## Установка и Live-среда

### Почему CachyOS live ISO включает только KDE Plasma?

Мы решили сосредоточить наши усилия по разработке и поддержке исключительно на рабочем окружении KDE Plasma. Это позволяет нам предоставлять более отточенный, стабильный и целостный пользовательский опыт на нашем live ISO.

Live-среда в первую очередь предназначена для установки CachyOS или использования `cachy-chroot` для восстановления системы. Для безопасного тестирования других рабочих окружений или оконных менеджеров мы настоятельно рекомендуем пробовать их в виртуальной машине (ВМ).

### Почему установщик так долго запускается после нажатия кнопки «Запустить установщик»?

:::caution
Убедитесь, что у вас есть активное интернет-соединение, иначе после нажатия этой кнопки ничего не произойдёт.
:::

Установщик не завис. Он выполняет необходимый фоновый скрипт для подготовки вашей системы к установке. Этот процесс обеспечивает актуальность связок ключей и системного времени, что помогает предотвратить распространённые проблемы при установке.

[Посмотрите скрипт на GitHub](https://github.com/CachyOS/CachyOS-Live-ISO/blob/master/archiso/airootfs/usr/local/bin/calamares-online.sh), чтобы лучше понять, что он делает.
<Steps>
  1. Удаляет старые файлы связок ключей.
  2. Устанавливает и обновляет последние пакеты связок ключей Arch Linux и CachyOS.
  3. Инициализирует и заполняет связку ключей pacman.
  4. Включает синхронизацию времени по сети.
  5. Проверяет тип загрузки вашей системы (UEFI или BIOS/MBR), чтобы предложить пользователю выбрать загрузчик в зависимости от типа.
</Steps>

Вот почему загрузка установщика может занять некоторое время.

### Почему моя установка зависает на 33%?

Это происходит, когда установщику не удаётся загрузить пакеты. Обычно это признак очень медленного или нестабильного интернет-соединения. Пожалуйста, проверьте ваше сетевое соединение и попробуйте снова.

## Восстановление загрузчика

:::note
В случае удаления раздела `/boot`. Пожалуйста, создайте новый, следуя соответствующей [схеме разметки](/ru/installation/installation_on_root#uefigpt) из шага 5.
:::

### Шаги по восстановлению загрузчика

:::tip
Если вы не уверены, как использовать `cachy-chroot`, пожалуйста, сначала обратитесь к документации [CachyOS chroot Helper](/ru/features/cachy_chroot).
:::

<Steps>
    1. Загрузитесь с CachyOS Live ISO.
    2. Откройте терминал и выполните chroot в вашу установленную систему с помощью команды `cachy-chroot`.

        ```bash
        sudo cachy-chroot
        ```
        Если ваша система использует BTRFS с нашими предустановками, ответьте `y` на запрос:
         ```bash title='Пример'
         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:
         # Введите /boot для systemd-boot, Limine или rEFInd
         # Введите /boot/efi для GRUB
         ```
    3. Следуйте инструкциям ниже для вашего установленного загрузчика и типа системы (UEFI или MBR/BIOS).
        <Tabs>
            <TabItem label='GRUB'>
                Переустановите GRUB следующей командой:
                <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 # Замените sdX на ваш диск, например, sda
                        ```
                    </TabItem>
                </Tabs>
            </TabItem>
            <TabItem label='systemd-boot (только UEFI)'>
                Переустановите systemd-boot следующей командой:
                ```bash
                sudo bootctl install
                ```
            </TabItem>
            <TabItem label='Limine'>
                Переустановите Limine следующей командой:
                <Tabs>
                    <TabItem label='UEFI'>
                        ```bash
                        sudo limine-install
                        ```
                    </TabItem>
                    <TabItem label='MBR/BIOS'>
                        ```bash
                        sudo limine bios-install /dev/sdX # Замените sdX на ваш диск, например, sda
                        ```
                    </TabItem>
                </Tabs>
            </TabItem>
            <TabItem label='rEFInd (только UEFI)'>
                Переустановите rEFInd следующей командой:
                ```bash
                sudo refind-install
                ```
            </TabItem>
        </Tabs>
    4. Переустановите ядро CachyOS:
        ```bash
        sudo pacman -Syu linux-cachyos linux-cachyos-headers
        ```
    5. Выйдите из cachy-chroot:
        ```bash
        exit
        ```
    6. Перезагрузите систему.
</Steps>

## Управление пакетами и обновления

### Устранение неполадок с Pacman

#### error: signature is invalid (ошибка: недействительная подпись)

Эта ошибка указывает на проблему с криптографической подписью пакета. Обычно она вызвана устаревшим зеркалом или поврежденным набором ключей в вашей системе.

Хотя зеркала часто исправляются сами по себе через некоторое время, если проблема не устраняется, вам следует попробовать одно из следующих двух решений.

<Tabs>

<TabItem label='Первое решение: повторная синхронизация зеркал Pacman'>

```sh
sudo pacman -Syu
```

</TabItem>

<TabItem label='Второе решение: оценка зеркал'>

```sh title='Оцените ваши зеркала'
sudo cachyos-rate-mirrors
```

</TabItem>

<TabItem label='Третье решение: сброс наборов ключей'>

Если оценка зеркал не помогла, вероятно, наборы ключей вашей системы повреждены.

- Откройте CachyOS Hello и перейдите в **Troubleshooting** (Приложения/Настройки).
- Нажмите кнопку Reset keyrings (Сбросить наборы ключей).

</TabItem>

</Tabs>

#### error: 404 Not Found (ошибка: 404 не найдено)

Эта ошибка означает, что пакет, который вы пытаетесь установить, недоступен на вашем текущем зеркале. Обычно это происходит, когда ваша локальная база данных пакетов не синхронизирована с удаленными репозиториями.

**Решение:**

Выполните следующую команду, чтобы обновить вашу базу данных пакетов и выполнить полное обновление системы. Это гарантирует, что ваша система будет знать о последних доступных пакетах.

```sh
sudo pacman -Syu
# Затем попробуйте снова установить нужный пакет.
```

#### error: could not remove (ошибка: не удалось удалить)

Эта ошибка возникает, когда кэш pacman содержит файлы, которыми система не может управлять автоматически. Это распространенная проблема, которую легко исправить.

- Решение 1: Использовать CachyOS Hello.
  - Самый простой способ исправить это — с помощью CachyOS Hello. Откройте его и перейдите в **Troubleshooting** (Приложения/Настройки), затем нажмите кнопку **Clear package cache** (Очистить кэш пакетов).

- Решение 2: Удалить кэш вручную.
  - Выполните следующую команду, чтобы удалить все осиротевшие пакеты из кэша.
  ```sh
  sudo rm -r /var/cache/pacman/pkg/*
  ```

#### error: File is corrupted (invalid or corrupted package (PGP signature)) (ошибка: файл поврежден (недействительный или поврежденный пакет (подпись PGP)))

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

Эта ошибка обычно указывает на проблему с наборами ключей pacman в вашей системе, которые проверяют подлинность пакетов. Следующие команды сбросят и повторно заполнят наборы ключей для решения проблемы.

```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
```

Если описанное выше не помогло, проблема не в вашей связке ключей. Возможно, дело в ваших зеркалах, поэтому вы можете выбрать рабочие зеркала, а затем очистить кэш, выполнив следующие команды:

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

#### error: unable to lock database (ошибка: не удается заблокировать базу данных)

Эта ошибка возникает, когда уже запущен другой процесс pacman, который блокирует базу данных для предотвращения повреждения. Если предыдущий процесс завершился сбоем или был прерван, файл блокировки `db.lck` мог не быть удален.

- Решение 1: Использовать CachyOS Hello
  - Самый простой способ исправить это — с помощью функции **Remove db lock** (Снять блокировку БД) на вкладке **Troubleshooting** (Приложения/Настройки) в CachyOS Hello.

- Решение 2: Удалить файл блокировки вручную
  - Если вы предпочитаете не использовать CachyOS Hello, вы можете удалить файл блокировки вручную:

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

#### error: failed retrieving file ... Connection timed out (ошибка: не удалось получить файл ... Время ожидания соединения истекло)

Вы можете увидеть ошибки, подобные этим:

```text
# Примеры ошибок:
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
```

Эти ошибки почти всегда указывают на проблему с вашими текущими зеркалами. Они могут быть медленными, временно недоступными или недостижимыми из вашего местоположения.

- Решение: Лучший способ исправить это — обновить список зеркал, добавив более быстрые и надежные.

```sh
sudo cachyos-rate-mirrors
# После этого вы можете обновить систему с помощью:
sudo pacman -Syu
```

:::tip
Команда `cachyos-rate-mirrors` тестирует доступные зеркала CachyOS на основе скорости и статуса синхронизации, а затем обновляет ваш файл списка зеркал (`/etc/pacman.d/cachyos-mirrorlist`) лучшими из них.

Рекомендуется периодически запускать эту команду, особенно если вы замечаете замедления во время обновлений системы.
:::

#### warning: local is newer than... (предупреждение: локальная версия новее, чем...)

Это предупреждение появляется, когда версия пакета в вашей системе новее, чем версия, доступная в официальных репозиториях. Это может произойти, если зеркало устарело, если пакет был понижен в репозиториях или если пакет был установлен из другого источника.

- Решение: команда `pacman -Syuu` выполняет полное обновление системы и разрешает понижение версий, что устранит предупреждение, синхронизируя ваши локальные пакеты с версиями в репозитории.

```sh title='Чтобы убрать эти предупреждения, выполните следующую команду:'
sudo pacman -Syuu
```

#### error: failed to commit transaction (conflicting files) (ошибка: не удалось выполнить транзакцию (конфликтующие файлы))

Эта ошибка указывает на то, что pacman пытается установить или обновить пакет, который содержит файлы, уже присутствующие в вашей системе из другого источника. Это встроенная мера безопасности для предотвращения поломки системы.

- Решение: Вы можете решить эту проблему, удалив конфликтующие файлы вручную. Для получения дополнительной информации и решений, пожалуйста, обратитесь к [Arch Wiki](https://wiki.archlinux.org/title/Pacman#%22Failed_to_commit_transaction_(conflicting_files)%22_error).

```sh title='Пример'
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
```

Чтобы исправить этот конкретный пример, вам нужно удалить конфликтующий файл, а затем снова запустить команду обновления.

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

#### ERROR: module not found: 'nvidia', 'nvidia_modeset', ... (ОШИБКА: модуль не найден: 'nvidia', 'nvidia_modeset', ...)

```sh title='Пример'
==> ERROR: module not found: 'nvidia'
==> ERROR: module not found: 'nvidia_modeset'
==> ERROR: module not found: 'nvidia_uvm'
==> ERROR: module not found: 'nvidia_drm'
```

**Две причины этой ошибки:**

1) Поскольку ранняя загрузка модулей всегда включена в chwd, mkinitcpio постоянно ожидает наличия модулей NVIDIA; эта ошибка возникает, когда эти модули отсутствуют.

2) У вас могут отсутствовать модули NVIDIA для других установленных ядер в вашей системе.

```sh title='Установите следующий пакет, чтобы исправить эту ошибку'
sudo pacman -S nvidia
```

### Проблемы с конкретным ПО

#### Discord просит об обновлении, которого нет в репозиториях.

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

Это происходит потому, что Discord использует собственную систему обновлений, которая опережает официальные репозитории. Новая версия приложения уже выпущена, но она еще не упакована для наших зеркал.

Чтобы обойти эту проблему, следуйте [руководству по исправлению на Arch Wiki](<https://wiki.archlinux.org/title/Discord#Discord_asks_for_an_update_not_yet_available_in_the_repository>).

### Общие вопросы

#### В последнее время моя система долго загружается

Поскольку эта проблема может быть вызвана многими разными причинами, начнём с основ и проверим `systemd-analyze`, чтобы узнать, где система «застревает»:

Откройте терминал и выполните одну из следующих команд:

```sh
systemd-analyze blame
```

или:

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

Если вывод показывает, что `cachyos-rate-mirrors.service` выполняется слишком долго, выполните следующую команду, чтобы замаскировать эту службу и предотвратить её запуск при загрузке:

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

#### Каково происхождение CachyOS и почему она так называется?

CachyOS названа в честь планировщика «Cachy», который был первоначальным названием [планировщика cacULE](https://github.com/hamadmarri/cacule-cpu-scheduler) — планировщика ЦП для ядра Linux.

Проект зародился в 2020-2021 годах, когда ptr1337 (один из основателей CachyOS) тестировал планировщик cacULE и сотрудничал с его разработчиком по имени Hamad. Когда они решили создать оптимизированный дистрибутив Linux на базе Arch Linux с пакетами, оптимизированными под x86-64-v3, они назвали его «CachyOS» в честь планировщика, который их объединил.

#### С какой периодичностью обновляются пакеты -git?

Обычно раз в понедельник, хотя могут быть исключения.

#### Получают ли -bin пакеты в репозиториях CachyOS те же оптимизации производительности?

Нет. Пакеты `-bin` являются предварительно скомпилированными бинарными файлами и не включают те же оптимизации производительности, что и пакеты, собранные из исходного кода в репозиториях CachyOS.

#### Как отключить анимацию загрузки (Plymouth)

:::note[Это может решить проблему черного экрана на некоторых системах, например, со старыми GPU NVIDIA]
:::

Чтобы отключить анимацию загрузки, вам нужно отредактировать конфигурацию вашего [загрузчика](/ru/configuration/boot_manager_configuration) и добавить следующие параметры ядра:

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

:::note[systemd-boot, GRUB и Limine требуют перегенерации образов initramfs]
systemd-boot: `sudo sdboot-manage gen`

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

Limine: `sudo limine-mkinitcpio`
:::

#### Отправка запросов на добавление пакетов в CachyOS

CachyOS предлагает обширный список предварительно скомпилированных пакетов из AUR, которые часто используются.
Пользователи могут создавать запросы на пакеты из AUR, которые, в случае одобрения, автоматически обновляются нашим сервером сборки.

Если вы хотите, чтобы мы добавили пакет, вы можете отправить запрос на GitHub или на форуме.

- [GitHub:](https://github.com/CachyOS/distribution/issues)
- [Форум:](https://discuss.cachyos.org/c/feedback/repository/11)
- [Discord: Канал обратной связи (Feedback Channel)](https://discord.com/channels/862292009423470592/1150723027986813018)

## Безопасность и лучшие практики

### Практики безопасности при работе с AUR

AUR предлагает огромный выбор, но безопасность имеет первостепенное значение. Вот краткое руководство по безопасному использованию AUR в вашей системе CachyOS.

* **1. Разберитесь в PKGBUILD:** Это скрипт сборки. Изучите его структуру, переменные (`source`, `pkgname`) и функции (`build()`, `package()`).
* **2. Проверяйте ссылки на исходный код:** Всегда проверяйте, что URL-адреса в `source` ведут на официальные сайты проектов или доверенные репозитории. Избегайте подозрительных или личных ссылок.
* **3. Просматривайте шаги установки:** Изучите, куда устанавливаются файлы (функция `package()`) и есть ли какие-либо необычные команды или команды, затрагивающие чувствительные области системы. Также проверяйте скрипты `.install`.
* **4. Изучите информацию о мейнтейнере:** Проверьте историю мейнтейнера в AUR на предмет прошлых проблем с безопасностью или подозрительной активности.
* **5. Проверяйте контрольные суммы и PGP:** Абсолютно необходимо! Убедитесь, что все контрольные суммы (SHA256, BLAKE2b и т.д.) совпадают с теми, что предоставлены разработчиками. Используйте PGP-подписи (`validpgpkeys`) для проверки подлинности, когда они доступны.
* **6. Будьте осторожны с пакетами `-bin`:** Они используют предварительно скомпилированные бинарные файлы, что означает, что вы не можете проверить исходный код. Применяйте максимальную осмотрительность к их происхождению и целостности.
* **7. Читайте комментарии сообщества:** Проверяйте комментарии на странице AUR на наличие предупреждений, проблем или мнений от других пользователей.
* **8. Никогда не пропускайте проверку целостности:** Использование флагов `--skipinteg` или подобных обходит все проверки безопасности. Не делайте этого.
* **9. Контролируйте ваш AUR-хелпер:** Поймите, как работает ваш хелпер (yay, paru). Убедитесь, что он показывает вам PKGBUILD и его изменения, или собирайте пакеты вручную с помощью `makepkg`.
* **10. Оцените необходимость:** Перед установкой спросите себя, действительно ли вам нужен этот пакет из AUR, или существует альтернатива в официальном репозитории.
* **11. Поддерживайте систему в актуальном состоянии:** Регулярно запускайте `sudo pacman -Syu`, чтобы все компоненты вашей системы, включая `pacman` и `makepkg`, имели последние исправления безопасности.

Будьте бдительны, чтобы обеспечить безопасность вашей системы на базе Arch!

### Регулярное обслуживание CachyOS

Следуйте Arch Wiki: https://wiki.archlinux.org/title/System_maintenance

### Выбор графического менеджера пакетов

Хотя графические менеджеры пакетов предлагают удобство, некоторые из них, как известно, вызывают серьезные проблемы в системах с плавающими релизами, таких как CachyOS, и их следует избегать для управления системными пакетами.

-   **Pamac:** известен тем, что некорректно выполняет некоторые задачи по управлению пакетами, например, повреждает системные наборы ключей пакетов. Это может привести к ошибкам PGP-подписей, которые не позволят вам обновлять систему.

-   **Discover (KDE) и GNOME Software Center:** Эти магазины приложений используют бэкенд PackageKit. Хотя они в целом безопасны для управления Flatpak-пакетами, использование их для установки или обновления **системных пакетов** рискованно. Менеджеры на основе PackageKit также могут быть нестабильными или склонными к сбоям, что может привести к поломке системы после неудачной транзакции.

Для максимальной стабильности и надежности мы **настоятельно рекомендуем** управлять системными пакетами через командную строку с помощью `pacman`.

Если вы предпочитаете графический интерфейс, графические оболочки, такие как **[Shelly](</ru/configuration/post_install_setup/#обновление-системы>)** или **CachyOS Package Installer**, считаются безопасными альтернативами, поскольку они являются более прямыми обертками для функциональности pacman.
