---
title: Оптимизированные репозитории
description: Информация о наших оптимизированных репозиториях
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
ai_translated: true
---

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

Для предоставления оптимизированного по производительности дистрибутива, CachyOS пересобирает пакеты Arch Linux специально для архитектур `x86-64-v3`, `x86-64-v4` и `Zen4+`.

- **x86-64-v3:** Прирост производительности 5%-20% по сравнению с x86-64.
- **x86-64-v4:** Обеспечивает значительный прирост производительности благодаря поддержке AVX512, в зависимости от рабочей нагрузки.
- **Zen 4/5:** В дополнение к набору инструкций x86-64-v4, добавлены следующие инструкции:

```text
abm, adx, aes, avx512bf16, avx512bitalg, avx512ifma, avx512vbmi, avx512vbmi2, avx512vnni,
avx512vpopctndq, clflushopt, clwb, clzero, fsgsbase, gfni, mwaitx, pclmul, pku, prfchw,
rpdid, rdrnd, rdseed, sha, sse4a, vaes, vockmulqdq, wbnoinvd, savec, xsaveopt, xsaves
```

Чтобы узнать больше об этих архитектурах, [ознакомьтесь с этой статьёй в Википедии](https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels).

## Модифицированные пакеты

Наш репозиторий [CachyOS-PKGBUILDs](https://github.com/CachyOS/CachyOS-PKGBUILDS) содержит пакеты, которые получают постоянные обновления, патчи и портированные исправления.
Для повышения производительности мы выборочно применяем оптимизации PGO, LTO и BOLT в зависимости от потребностей.
Мы также поддерживаем несколько `-git` пакетов, например mesa-git.

### [Поиск пакетов CachyOS](<https://packages.cachyos.org/>)

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

<ImageComponent imgsrc={import('~/assets/images/cachyos-package-dashboard.png')} />

## Миграция с x86-64-v3 на x86-64-v4 или znver4

Если вы в настоящее время используете репозитории x86-64-v3, а ваш новый процессор поддерживает x86-64-v4 (или AMD Zen 4/5), вы можете выполнить миграцию, следуя этим шагам:

### Проверка совместимости процессора

:::caution
Процессоры Intel 12-го поколения (Alder Lake) и новее могут сообщать о поддержке `x86-64-v4`, но на практике они **не могут выполнять инструкции AVX-512**.

Почему?
- **Конфликт гибридной архитектуры**: Большие «P-ядра» поддерживают AVX-512, а малые «E-ядра» — нет. Выполнение инструкций AVX-512 при активных E-ядрах привело бы к нестабильности.
- **Обходной путь от Intel**: Чтобы избежать этого несоответствия, Intel отключила AVX-512 двумя способами:
  - **Обновления микрокода/BIOS** (ранние чипы Alder Lake): AVX-512 можно было снова включить, избегая или откатывая обновления микрокода.
  - **Аппаратная блокировка** (чипы 2022+ и позднее): AVX-512 необратимо отключается на заводе, что делает невозможным его повторное включение.

Поскольку `x86-64-v4` требует AVX-512, эти процессоры следует рассматривать как **поддерживающие только x86-64-v3**.
:::

- Проверка поддержки `x86-64-v4`:
  ```sh title='Выполните следующую команду:'
  /lib/ld-linux-x86-64.so.2 --help | grep supported
  ```
  - ✅ `x86-64-v4 (supported, searched)` → Процессор поддерживает v4
  - ❌ Отсутствует строка `x86-64-v4` → Процессор не поддерживает v4

Пример (процессор поддерживает v4):
  ```sh
  $ /lib/ld-linux-x86-64.so.2 --help | grep supported
    x86-64-v2 (supported, searched)
    x86-64-v3 (supported, searched)
    x86-64-v4 (supported, searched)
  ```

- Для процессоров AMD Zen 4/5 проверьте, сообщает ли ваш процессор о поддержке znver4 или znver5:
  - Выполните следующую команду:
    ```sh
    gcc -march=native -Q --help=target 2>&1 | grep -Po "^\s+-march=\s+\K(\w+)\$"
    ```
    Если вывод — `znver4` или `znver5`, вы можете приступать к миграции.

:::note
И x86-64-v4, и znver4 используют один и тот же список зеркал `/etc/pacman.d/cachyos-v4-mirrorlist`.
:::

:::note[Если вам нужно вернуться к репозиторию или отменить изменение, это руководство будет вам полезно.]
Пример: с znver4 на v4.
:::

### Шаги миграции

<Steps>
1. Отредактируйте `/etc/pacman.conf` и замените ваши репозитории `x86-64-v3` одним из следующих вариантов в зависимости от поддержки вашего процессора:
    <Tabs>
        <TabItem label="x86-64-v4">
            ```ini title='/etc/pacman.conf'
            [cachyos-v4]
            Include = /etc/pacman.d/cachyos-v4-mirrorlist

            [cachyos-core-v4]
            Include = /etc/pacman.d/cachyos-v4-mirrorlist

            [cachyos-extra-v4]
            Include = /etc/pacman.d/cachyos-v4-mirrorlist
            ```
        </TabItem>

        <TabItem label="znver4 (только для AMD Zen 4/5)">
          ```ini title='/etc/pacman.conf'
          [cachyos-znver4]
          Include = /etc/pacman.d/cachyos-v4-mirrorlist

          [cachyos-core-znver4]
          Include = /etc/pacman.d/cachyos-v4-mirrorlist

          [cachyos-extra-znver4]
          Include = /etc/pacman.d/cachyos-v4-mirrorlist
        ```
        </TabItem>
        Не изменяйте `[cachyos]`, `[core]`, `[extra]` и `[multilib]`.
        </Tabs>
2. Очистите кэш пакетов и синхронизируйте базы данных:

   ```sh
   sudo pacman -Scc   # Подтвердите дважды, введя 'y'
   sudo pacman -Sy
   ```

3. Переустановите все пакеты для перехода на новую архитектуру:

   ```sh
   pacman -Qqn | sudo pacman -S -
   ```

4. Перезагрузите систему.
</Steps>

---

## Добавление наших репозиториев в существующую установку Arch Linux

:::tip
Прежде чем рассматривать добавление наших репозиториев, пожалуйста, ознакомьтесь со **[списком совместимости процессоров](/ru/installation/installation_prepare#x86_64-microarchitecture-level-support)**
:::

<Tabs>

<TabItem label='Автоматически'>

Мы предоставляем скрипт, который автоматизирует установку наших репозиториев в ваши существующие Arch-подобные системы.

```sh
curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos-repo.tar.xz
tar xvf cachyos-repo.tar.xz && cd cachyos-repo
sudo ./cachyos-repo.sh
```

:::tip[Как работает скрипт]
Этот скрипт определяет наборы инструкций, которые поддерживает ваш процессор, и устанавливает ту версию наших репозиториев, которая наиболее оптимизирована для него. Он также создаёт резервную копию вашего старого файла `pacman.conf` для последующего удаления репозитория с помощью скрипта.
:::

</TabItem>

<TabItem label='Вручную'>
    :::caution
    Установка CachyOS Pacman установит форк pacman с функциями, добавленными CachyOS, такими как "INSTALLED_FROM" и автоматическая проверка архитектуры. В Pacman 6.1 была добавлена функция проверки функций, что может приводить к предупреждениям при использовании pacman от Arch Linux. Мы работаем с Arch Linux, чтобы снова обеспечить должную совместимость. Если вы хотите этого избежать, не добавляйте репозиторий "cachyos", который содержит модифицированный pacman. Все остальные репозитории, такие как cachyos-v3, cachyos-v4, cachyos-extra/core-v3/4, можно добавлять безопасно.
    :::

<Steps>

1. Установите связку ключей CachyOS:

   ```sh
   # Импортируйте ключ репозитория
   sudo pacman-key --recv-keys F3B607488DB35A47 --keyserver keyserver.ubuntu.com
   # Подпишите ключ репозитория
   sudo pacman-key --lsign-key F3B607488DB35A47
   ```
2. Установите необходимые пакеты:

   ```sh
   sudo pacman -U 'https://mirror.cachyos.org/repo/x86_64/cachyos/cachyos-keyring-20240331-1-any.pkg.tar.zst' \
   'https://mirror.cachyos.org/repo/x86_64/cachyos/cachyos-mirrorlist-27-1-any.pkg.tar.zst' \
   'https://mirror.cachyos.org/repo/x86_64/cachyos/cachyos-v3-mirrorlist-27-1-any.pkg.tar.zst' \
   'https://mirror.cachyos.org/repo/x86_64/cachyos/cachyos-v4-mirrorlist-27-1-any.pkg.tar.zst' \
   'https://mirror.cachyos.org/repo/x86_64/cachyos/pacman-7.1.0.r9.g54d9411-4-x86_64.pkg.tar.zst'
   ```
3. Добавьте репозитории CachyOS в конфигурационный файл pacman:
   :::note
   Эти репозитории должны быть расположены выше репозиториев Arch Linux.
   :::

   ```ini
   # /etc/pacman.conf
   # Если ваш процессор поддерживает только x86-64, добавьте репозиторий [cachyos]
   # Репозитории cachyos
   [cachyos]
   Include = /etc/pacman.d/cachyos-mirrorlist

   # Если ваш процессор поддерживает x86-64-v3, добавьте [cachyos-v3],[cachyos-core-v3],[cachyos-extra-v3] и [cachyos]
   # Репозитории cachyos

   [cachyos-v3]
   Include = /etc/pacman.d/cachyos-v3-mirrorlist
   [cachyos-core-v3]
   Include = /etc/pacman.d/cachyos-v3-mirrorlist
   [cachyos-extra-v3]
   Include = /etc/pacman.d/cachyos-v3-mirrorlist
   [cachyos]
   Include = /etc/pacman.d/cachyos-mirrorlist

   # Если ваш процессор поддерживает x86-64-v4, добавьте [cachyos-v4], [cachyos-core-v4], [cachyos-extra-v4] и [cachyos]
   # Репозитории cachyos

   [cachyos-v4]
   Include = /etc/pacman.d/cachyos-v4-mirrorlist
   [cachyos-core-v4]
   Include = /etc/pacman.d/cachyos-v4-mirrorlist
   [cachyos-extra-v4]
   Include = /etc/pacman.d/cachyos-v4-mirrorlist
   [cachyos]
   Include = /etc/pacman.d/cachyos-mirrorlist

   # Если ваш процессор основан на Zen 4 или Zen 5, добавьте [cachyos-znver4], [cachyos-core-znver4], [cachyos-extra-znver4] и [cachyos]

   [cachyos-znver4]
   Include = /etc/pacman.d/cachyos-v4-mirrorlist
   [cachyos-core-znver4]
   Include = /etc/pacman.d/cachyos-v4-mirrorlist
   [cachyos-extra-znver4]
   Include = /etc/pacman.d/cachyos-v4-mirrorlist
   [cachyos]
   Include = /etc/pacman.d/cachyos-mirrorlist
   ```
      :::tip
   Чтобы перейти с репозиториев `v4` на `znver4`

   Добавьте соответствующие записи из предыдущего шага и выполните следующие команды:
    ```sh
    sudo pacman -Scc # Введите Y в обоих случаях
    sudo pacman -Sy
    pacman -Qqn | sudo pacman -S --needed - # Чтобы заменить все пакеты v4 на пакеты znver4
    # Перезагрузите вашу систему
    ```
   :::

4. Наконец, обновите вашу систему пакетами из CachyOS:
   ```sh
   sudo pacman -Syu
   ```

</Steps>

</TabItem>

</Tabs>

### Удаление репозиториев CachyOS

<Tabs>
<TabItem label='Автоматически'>

**Выполните следующие команды, чтобы удалить репозитории CachyOS из вашей системы:**
```sh
curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos-repo.tar.xz
tar xvf cachyos-repo.tar.xz
cd cachyos-repo
sudo ./cachyos-repo.sh --remove
```

</TabItem>

<TabItem label='Вручную'>

<Steps>

1. Переустановите оригинальный pacman из репозиториев Arch Linux:
   ```sh
   sudo pacman -S core/pacman
   ```
2. Выполните следующую команду:
   ```sh
   # Это позволит избежать предупреждений %INSTALLED_DB%
   sudo find /var/lib/pacman/local/ -type f -name "desc" -exec sed -i '/^%INSTALLED_DB%$/,+2d' {} \;
   ```
3. Восстановите конфигурационный файл pacman из резервной копии:
   ```sh
   sudo mv /etc/pacman.conf.bak /etc/pacman.conf
   ```
4. Вернитесь к стандартным пакетам Arch Linux с помощью следующих команд:
   ```sh
   pacman -Qqn | sudo pacman -S -
   sudo pacman -Syu
   ```
</Steps>

</TabItem>
</Tabs>

## Тесты и бенчмарки

Майкл из Phoronix уже несколько раз проводил бенчмарки CachyOS, которые в основном показывают лидерство в графиках производительности и в среднегеометрическом значении всех результатов тестов.
С момента первого бенчмарка, сделанного в 2022 году, CachyOS значительно эволюционировала и повзрослела в плане удобства использования и производительности.

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

* **14/03/2021:** В RFC-обсуждении о влиянии x86-64-v3, инициированном **Матеушем Йончиком** из Arch Linux, были представлены некоторые первоначальные результаты.
  * [RFC: Use x86_64-v2 architecture](https://lists.archlinux.org/pipermail/arch-general/2021-March/048739.html)

* **09/12/2022:** Первый бенчмарк, выполненный Майклом.
  * [Производительность CachyOS на базе Arch Linux](https://www.phoronix.com/review/cachyos-linux-perf)

* **29/02/2024:** Phoronix провел еще один бенчмарк, демонстрирующий разницу между пакетами x86-64-v4, x86-64-v3 и x86-64 (generic). Если посмотреть на примеры, такие как PHP или GCC, где мы модифицируем наши PKGBUILD, заметно значительное улучшение производительности.
  * [Бенчмарки CachyOS для репозиториев x86-64-v3 и x86-64-v4 на Arch Linux](https://www.phoronix.com/review/cachyos-x86-64-v3-v4)

* **20/08/2024:** Майкл опубликовал новый бенчмарк для AMD Ryzen 9 9950x, в котором участвует CachyOS и некоторые другие дистрибутивы Linux.
  * [Intel продолжает показывать AMD важность оптимизаций программного обеспечения: на 16% больше производительности Ryzen 9 9950X](https://www.phoronix.com/review/linux-os-amd-ryzen9-9950x)
   :::note
   Liquid-DSP и RocksDB были скомпилированы с помощью Phoronix Benchmark Suite, игнорируя флаги компиляции, указанные в /etc/makepkg.conf, что привело к неожиданным результатам производительности для CachyOS.
   :::
