---
title: Dépôts optimisés
description: Informations sur nos dépôts optimisés
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
---

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

Pour fournir une distribution optimisée en termes de performances, CachyOS recompile les paquets d'Arch Linux spécifiquement pour les architectures `x86-64-v3`, `x86-64-v4` et `Zen4+`.

- **x86-64-v3 :** Amélioration des performances de 5 % à 20 % par rapport à x86-64.
- **x86-64-v4 :** Offre des gains de performance substantiels grâce au support d'AVX512, en fonction de la charge de travail.
- **Zen 4/5 :** En plus du jeu d'instructions x86-64-v4, les instructions suivantes sont ajoutées :

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

Pour en savoir plus sur ces architectures, [consultez cet article de Wikipédia](https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels).

## Paquets personnalisés

Notre dépôt [CachyOS-PKGBUILDs](https://github.com/CachyOS/CachyOS-PKGBUILDS) contient des paquets qui reçoivent des mises à jour continues, des correctifs et des corrections rétroportées.
Pour améliorer les performances, nous implémentons sélectivement les optimisations PGO, LTO et BOLT en fonction des besoins.
Nous maintenons également quelques paquets `-git`, par exemple mesa-git.

### [Recherche de paquets CachyOS](<https://packages.cachyos.org/>)

Présentation de notre nouvelle page de recherche de paquets pour CachyOS. Vous pouvez désormais rechercher facilement des paquets et accéder à des informations détaillées, telles que leur architecture de compilation, leur dernière date de mise à jour, et plus encore.

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

## Migration de x86-64-v3 vers x86-64-v4 ou znver4

Si vous utilisez actuellement les dépôts x86-64-v3 et que votre nouveau processeur prend en charge x86-64-v4 (ou AMD Zen 4/5), vous pouvez migrer en suivant ces étapes :

### Vérification de la compatibilité du processeur

:::caution
Les processeurs Intel de 12e génération (Alder Lake) et plus récents peuvent signaler la prise en charge de `x86-64-v4`, mais en pratique, ils **ne peuvent pas exécuter les instructions AVX-512**.

Pourquoi ?
- **Conflit d'architecture hybride** : Les gros « P-cores » prennent en charge AVX-512, mais les petits « E-cores » ne le font pas. L'exécution d'AVX-512 alors que les E-cores sont actifs provoquerait une instabilité.
- **Solution de contournement d'Intel** : Pour éviter cette incompatibilité, Intel a désactivé AVX-512 de two manières :
  - **Mises à jour du microcode/BIOS** (premières puces Alder Lake) : AVX-512 pouvait être réactivé en évitant ou en revenant sur les mises à jour du microcode.
  - **Fusion matérielle** (puces plus récentes de 2022+) : AVX-512 est désactivé de manière permanente en usine, ce qui rend sa réactivation impossible.

Étant donné que `x86-64-v4` nécessite AVX-512, ces processeurs doivent être traités comme étant **uniquement x86-64-v3**.
:::

- Vérification de la prise en charge de `x86-64-v4` :
  ```sh title='Exécutez la commande suivante :'
  /lib/ld-linux-x86-64.so.2 --help | grep supported
  ```
  - ✅ `x86-64-v4 (supported, searched)` → Le processeur prend en charge v4
  - ❌ Pas de ligne `x86-64-v4` → Le processeur ne prend pas en charge v4

Exemple (le processeur prend en charge 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)
  ```

- Pour les processeurs AMD Zen 4/5, vérifiez si votre processeur signale znver4 ou znver5 :
  - Exécutez la commande suivante :
    ```sh
    gcc -march=native -Q --help=target 2>&1 | grep -Po "^\s+-march=\s+\K(\w+)\$"
    ```
    Si la sortie est `znver4` ou `znver5`, vous pouvez procéder à la migration.

:::note
x86-64-v4 et znver4 utilisent tous deux la même mirrorlist `/etc/pacman.d/cachyos-v4-mirrorlist`.
:::

:::note[Si vous avez besoin de revenir à un dépôt ou d'annuler le changement, ce guide vous sera utile.]
Exemple : De znver4 à v4.
:::

### Étapes de migration

<Steps>
1. Modifiez `/etc/pacman.conf` et remplacez vos dépôts `x86-64-v3` par l'un des suivants en fonction de la prise en charge de votre processeur :
    <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 uniquement)">
          ```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>
        Gardez `[cachyos]`, `[core]`, `[extra]` et `[multilib]` inchangés.
        </Tabs>
2. Videz le cache des paquets et synchronisez les bases de données :

   ```sh
   sudo pacman -Scc   # Confirmez avec 'o' deux fois
   sudo pacman -Sy
   ```

3. Réinstallez tous les paquets pour passer à la nouvelle architecture :

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

4. Redémarrez votre système.
</Steps>

---

## Ajouter nos dépôts à une installation existante d'Arch Linux

:::caution
L'installation du Pacman de CachyOS installera un pacman dérivé avec des fonctionnalités ajoutées par CachyOS, comme "INSTALLED_FROM" et une vérification automatique de l'architecture. Pacman 6.1 a ajouté une fonctionnalité de validation qui pourrait entraîner des avertissements lors de l'utilisation du pacman d'Arch Linux. Nous travaillons avec Arch Linux pour assurer à nouveau une bonne compatibilité. Si vous souhaitez éviter cela, n'ajoutez pas le dépôt "cachyos", qui contient le pacman personnalisé. Tous les autres dépôts comme cachyos-v3, cachyos-v4, cachyos-extra/core-v3/4 peuvent être ajoutés en toute sécurité.
:::

:::tip
Avant d'envisager d'ajouter nos dépôts, veuillez consulter la **[liste de compatibilité des processeurs](/fr/installation/installation_prepare#support-du-niveau-de-microarchitecture-x86_64)**
:::

<Tabs>

<TabItem label='Automatisé'>

Nous fournissons un script qui automatise l'installation de nos dépôts sur vos installations existantes basées sur 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[Comment fonctionne le script]
Ce script détecte les jeux d'instructions que votre processeur est capable d'utiliser et installe la version de nos dépôts qui est la plus optimisée pour lui. Il sauvegarde également votre ancien `pacman.conf` pour permettre la suppression du dépôt via le script.
:::

</TabItem>

<TabItem label='Manuel'>

<Steps>

1. Installez le trousseau de clés CachyOS :

   ```sh
   # Importer la clé du dépôt
   sudo pacman-key --recv-keys F3B607488DB35A47 --keyserver keyserver.ubuntu.com
   # Signer la clé du dépôt
   sudo pacman-key --lsign-key F3B607488DB35A47
   ```
2. Installez les paquets nécessaires :

   ```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.r7.gb9f7d4a-3-x86_64.pkg.tar.zst'
   ```
3. Ajoutez les dépôts CachyOS au fichier de configuration de pacman :
   :::note
   Ces dépôts doivent être placés au-dessus des dépôts d'Arch Linux.
   :::

   ```ini
   # /etc/pacman.conf
   # Si votre CPU ne supporte que x86-64, alors ajoutez les dépôts [cachyos]
   # dépôts cachyos
   [cachyos]
   Include = /etc/pacman.d/cachyos-mirrorlist

   # Si votre CPU supporte x86-64-v3, alors ajoutez [cachyos-v3],[cachyos-core-v3],[cachyos-extra-v3] et [cachyos]
   # dépôts 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

   # Si votre CPU supporte x86-64-v4, alors ajoutez [cachyos-v4], [cachyos-core-v4], [cachyos-extra-v4] et [cachyos]
   # dépôts 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

   # Si votre CPU est basé sur Zen 4 ou Zen 5, ajoutez [cachyos-znver4], [cachyos-core-znver4], [cachyos-extra-znver4] et [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
   Pour faire la transition des dépôts `v4` vers les dépôts `znver4`

   Ajoutez les entrées correspondantes de l'étape précédente et exécutez les commandes suivantes :
    ```sh
    sudo pacman -Scc # Entrez O dans les deux cas
    sudo pacman -Sy
    pacman -Qqn | sudo pacman -S --needed - # Pour remplacer tous les paquets v4 par les paquets znver4
    # Redémarrez votre système
    ```
   :::

4. Enfin, mettez à jour votre système avec les paquets CachyOS :
   ```sh
   sudo pacman -Syu
   ```

</Steps>

</TabItem>

</Tabs>

### Désinstaller les dépôts CachyOS

<Tabs>
<TabItem label='Automatisé'>

**Exécutez les commandes suivantes pour supprimer les dépôts CachyOS de votre système :**
```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='Manuel'>

<Steps>

1. Réinstallez le pacman original d'Arch Linux :
   ```sh
   sudo pacman -S core/pacman
   ```
2. Exécutez la commande suivante :
   ```sh
   # Ceci évite d'obtenir des avertissements %INSTALLED_DB%
   sudo find /var/lib/pacman/local/ -type f -name "desc" -exec sed -i '/^%INSTALLED_DB%$/,+2d' {} \;
   ```
3. Restaurez le fichier de configuration de pacman à partir de la sauvegarde :
   ```sh
   sudo mv /etc/pacman.conf.bak /etc/pacman.conf
   ```
4. Revenez aux paquets par défaut d'Arch Linux avec les commandes suivantes :
   ```sh
   pacman -Qqn | sudo pacman -S -
   sudo pacman -Syu
   ```
</Steps>

</TabItem>
</Tabs>

## Tests et benchmarks

Michael de Phoronix a déjà benchmarké CachyOS à plusieurs reprises, le montrant principalement en tête dans les graphiques de benchmark et sur la moyenne géométrique de tous les résultats de test.
Depuis le premier benchmark réalisé en 2022, CachyOS a beaucoup évolué et mûri en termes d'utilisabilité et de performance.

Si vous souhaitez en savoir plus sur l'amélioration des performances de nos dépôts, veuillez consulter les liens ci-dessous.

* **14/03/2021 :** Dans une discussion RFC sur l'impact de x86-64-v3, **Mateusz Jończyk** d'Arch Linux a montré quelques résultats initiaux.
  * [RFC: Use x86_64-v2 architecture](https://lists.archlinux.org/pipermail/arch-general/2021-March/048739.html)

* **09/12/2022 :** Premier benchmark réalisé par Michael.
  * [The Performance Of Arch Linux Powered CachyOS](https://www.phoronix.com/review/cachyos-linux-perf)

* **29/02/2024 :** Phoronix a réalisé un autre benchmark démontrant la différence entre les paquets x86-64-v4, x86-64-v3 et x86-64 (générique). En regardant les exemples comme PHP ou GCC, où nous personnalisons nos PKGBUILDs, il y a une amélioration notable des performances.
  * [Arch Linux CachyOS Benchmarks Of x86-64-v3 & x86-64-v4 Repositories](https://www.phoronix.com/review/cachyos-x86-64-v3-v4)

* **20/08/2024 :** Michael a publié un nouveau benchmark pour l'AMD Ryzen 9950x sur lequel il inclut CachyOS et quelques autres distributions Linux.
  * [Intel Continues To Show AMD The Importance Of Software Optimizations: 16% More Ryzen 9 9950X Performance](https://www.phoronix.com/review/linux-os-amd-ryzen9-9950x)
   :::note
   Liquid-DSP et RocksDB ont été compilés en utilisant la Phoronix Benchmark Suite, ignorant les drapeaux de compilation spécifiés dans /etc/makepkg.conf, ce qui a entraîné des résultats de performance inattendus pour CachyOS.
   :::
