---
title: Optimierte Repositories
description: Informationen über unsere optimierten Repositories
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
---

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

Um eine leistungsoptimierte Distribution zu liefern, kompiliert CachyOS die Arch-Linux-Pakete speziell für die `x86-64-v3`, `x86-64-v4` und `Zen4+` Architekturen neu.

- **x86-64-v3:** 5 % bis 20 % Leistungssteigerung im Vergleich zu x86-64.
- **x86-64-v4:** Bringt erhebliche Leistungssteigerungen durch AVX512-Unterstützung, je nach Auslastung.
- **Zen 4/5:** Zusätzlich zum x86-64-v4-Befehlssatz werden die folgenden Befehle hinzugefügt:

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

Um mehr über diese Architekturen zu erfahren, [schau dir diesen Wikipedia-Artikel an](https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels).

## Angepasste Pakete

Unser [CachyOS-PKGBUILDs](https://github.com/CachyOS/CachyOS-PKGBUILDS) Repository enthält Pakete, die laufend Updates, Patches und zurückportierte Korrekturen erhalten.
Um die Leistung zu steigern, implementieren wir je nach Bedarf gezielt PGO-, LTO- und BOLT-Optimierungen.
Wir pflegen auch einige `-git`-Pakete, z. B. mesa-git.

### [CachyOS Paketsuche](<https://packages.cachyos.org/>)

Wir stellen unsere neue Paketsuchseite für CachyOS vor. Du kannst jetzt ganz einfach nach Paketen suchen und auf detaillierte Informationen zugreifen, wie z. B. ihre Kompilierungsarchitektur, das Datum der letzten Aktualisierung und mehr.

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

## Migration von x86-64-v3 zu x86-64-v4 oder znver4

Wenn du derzeit die x86-64-v3-Repositories nutzt und deine neue CPU x86-64-v4 (oder AMD Zen 4/5) unterstützt, kannst du wie folgt migrieren:

### CPU-Kompatibilität prüfen

:::caution
Intel-CPUs der 12. Generation (Alder Lake) und neuere können `x86-64-v4`-Unterstützung melden, aber in der Praxis können sie **keine AVX-512-Befehle ausführen**.

Warum?
- **Hybrid-Architektur-Konflikt**: Die großen „P-Kerne“ unterstützen AVX-512, aber die kleinen „E-Kerne“ nicht. Das Ausführen von AVX-512, während die E-Kerne aktiv sind, würde zu Instabilität führen.
- **Intels Workaround**: Um dieses Problem zu vermeiden, hat Intel AVX-512 auf zwei Arten deaktiviert:
  - **Microcode/BIOS-Updates** (frühe Alder-Lake-Chips): AVX-512 konnte wieder aktiviert werden, indem Microcode-Updates vermieden oder zurückgesetzt wurden.
  - **Hardware-Fusing** (spätere Chips ab 2022): AVX-512 wird werkseitig dauerhaft deaktiviert, sodass eine Reaktivierung unmöglich ist.

Da `x86-64-v4` AVX-512 erfordert, sollten diese CPUs als **nur x86-64-v3** behandelt werden.
:::

- Überprüfung der `x86-64-v4`-Unterstützung:
  ```sh title='Führe den folgenden Befehl aus:'
  /lib/ld-linux-x86-64.so.2 --help | grep supported
  ```
  - ✅ `x86-64-v4 (supported, searched)` → CPU unterstützt v4
  - ❌ Keine `x86-64-v4`-Zeile → CPU unterstützt v4 nicht

Beispiel (CPU unterstützt 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)
  ```

- Bei AMD Zen 4/5 CPUs, prüfe, ob deine CPU znver4 oder znver5 meldet:
  - Führe den folgenden Befehl aus:
    ```sh
    gcc -march=native -Q --help=target 2>&1 | grep -Po "^\s+-march=\s+\K(\w+)\$"
    ```
    Wenn die Ausgabe `znver4` oder `znver5` ist, kannst du mit der Migration fortfahren.

:::note
Sowohl x86-64-v4 als auch znver4 verwenden dieselbe Mirrorlist `/etc/pacman.d/cachyos-v4-mirrorlist`.
:::

:::note[Wenn du zu einem Repository zurückkehren oder die Änderung rückgängig machen musst, wird dir diese Anleitung nützlich sein.]
Beispiel: Von znver4 zu v4.
:::

### Migrationsschritte

<Steps>
1. Bearbeite `/etc/pacman.conf` und ersetze deine `x86-64-v3`-Repositories durch eine der folgenden Optionen, je nach CPU-Unterstützung:
    <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 (nur 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>
        Lass `[cachyos]`, `[core]`, `[extra]` und `[multilib]` unverändert.
        </Tabs>
2. Leere den Paket-Cache und synchronisiere die Datenbanken:

   ```sh
   sudo pacman -Scc   # Bestätige zweimal mit 'y'
   sudo pacman -Sy
   ```

3. Installiere alle Pakete neu, um zur neuen Architektur zu wechseln:

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

4. Starte dein System neu.
</Steps>

---

## Unsere Repositories zu einer bestehenden Arch-Linux-Installation hinzufügen

:::caution
Die Installation des CachyOS-Pacman installiert einen geforkten Pacman mit von CachyOS hinzugefügten Funktionen wie „INSTALLED_FROM“ und einer automatischen Architekturprüfung. Pacman 6.1 hat eine Funktionsvalidierung hinzugefügt, die bei Verwendung des Arch-Linux-Pacman zu Warnungen führen kann. Wir arbeiten mit Arch Linux zusammen, um wieder eine ordnungsgemäße Kompatibilität zu gewährleisten. Wenn du das vermeiden willst, füge das „cachyos“-Repository nicht hinzu, das den angepassten Pacman enthält. Alle anderen Repositories wie cachyos-v3, cachyos-v4, cachyos-extra/core-v3/4 können sicher hinzugefügt werden.
:::

:::tip
Bevor du darüber nachdenkst, unsere Repositories hinzuzufügen, schau dir bitte die **[CPU-Kompatibilitätsliste](/de/installation/installation_prepare#x86_64-mikroarchitektur-level-unterstützung)** an.
:::

<Tabs>

<TabItem label='Automatisiert'>

Wir stellen ein Skript zur Verfügung, das die Installation unserer Repositories auf deinen bestehenden Arch-basierten Installationen automatisiert.

```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[Wie das Skript funktioniert]
Dieses Skript erkennt die Befehlssätze, die deine CPU beherrscht, und installiert die Version unserer Repositories, die am besten dafür optimiert ist. Es sichert auch deine alte `pacman.conf` für die Entfernung der Repositories über das Skript.
:::

</TabItem>

<TabItem label='Manuell'>

<Steps>

1. CachyOS-Keyring installieren:

   ```sh
   # Den Repository-Schlüssel importieren
   sudo pacman-key --recv-keys F3B607488DB35A47 --keyserver keyserver.ubuntu.com
   # Den Repository-Schlüssel signieren
   sudo pacman-key --lsign-key F3B607488DB35A47
   ```
2. Die notwendigen Pakete installieren:

   ```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. Die CachyOS-Repositories zur Pacman-Konfigurationsdatei hinzufügen:
   :::note
   Diese Repositories sollten über den Arch-Linux-Repositories stehen.
   :::

   ```ini
   # /etc/pacman.conf
   # Wenn deine CPU nur x86-64 unterstützt, dann füge die [cachyos]-Repositories hinzu
   # cachyos repos
   [cachyos]
   Include = /etc/pacman.d/cachyos-mirrorlist

   # Wenn deine CPU x86-64-v3 unterstützt, füge [cachyos-v3],[cachyos-core-v3],[cachyos-extra-v3] und [cachyos] hinzu
   # cachyos repos

   [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

   # Wenn deine CPU x86-64-v4 unterstützt, füge [cachyos-v4], [cachyos-core-v4], [cachyos-extra-v4] und [cachyos] hinzu
   # cachyos repos

   [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

   # Wenn deine CPU auf Zen 4 oder Zen 5 basiert, füge [cachyos-znver4], [cachyos-core-znver4], [cachyos-extra-znver4] und [cachyos] hinzu

   [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
   Um den Übergang von den `v4`-Repositories zu den `znver4`-Repositories zu machen:

   Füge die entsprechenden Einträge aus dem vorherigen Schritt hinzu und führe die folgenden Befehle aus:
    ```sh
    sudo pacman -Scc # Gib in beiden Fällen Y ein
    sudo pacman -Sy
    pacman -Qqn | sudo pacman -S --needed - # Um alle v4-Pakete durch die znver4-Pakete zu ersetzen
    # Starte dein System neu
    ```
   :::

4. Zum Schluss aktualisiere dein System mit CachyOS-Paketen:
   ```sh
   sudo pacman -Syu
   ```

</Steps>

</TabItem>

</Tabs>

### CachyOS-Repositories deinstallieren

<Tabs>
<TabItem label='Automatisiert'>

**Führe die folgenden Befehle aus, um die CachyOS-Repositories von deinem System zu entfernen:**
```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='Manuell'>

<Steps>

1. Den originalen Pacman von Arch Linux neu installieren:
   ```sh
   sudo pacman -S core/pacman
   ```
2. Führe den folgenden Befehl aus:
   ```sh
   # Dies vermeidet %INSTALLED_DB%-Warnungen
   sudo find /var/lib/pacman/local/ -type f -name "desc" -exec sed -i '/^%INSTALLED_DB%$/,+2d' {} \;
   ```
3. Die Pacman-Konfigurationsdatei aus dem Backup wiederherstellen:
   ```sh
   sudo mv /etc/pacman.conf.bak /etc/pacman.conf
   ```
4. Mit den folgenden Befehlen zu den Standard-Arch-Linux-Paketen zurückwechseln:
   ```sh
   pacman -Qqn | sudo pacman -S -
   sudo pacman -Syu
   ```
</Steps>

</TabItem>
</Tabs>

## Tests und Benchmarks

Michael von Phoronix hat CachyOS bereits einige Male gebenchmarkt, wobei es sich in den Benchmark-Graphen und im geometrischen Mittel aller Testergebnisse meist führend zeigt.
Seit dem ersten Benchmark im Jahr 2022 hat sich CachyOS in Bezug auf Benutzerfreundlichkeit und Leistung stark weiterentwickelt und ist gereift.

Wenn du mehr über die Leistungssteigerung durch unsere Repositories erfahren möchtest, schau dir bitte die folgenden Links an.

* **14.03.2021:** In einer RFC-Diskussion über die Auswirkungen von x86-64-v3, die von **Mateusz Jończyk** von Arch Linux gestartet wurde, wurden erste Ergebnisse gezeigt.
  * [RFC: Use x86_64-v2 architecture](https://lists.archlinux.org/pipermail/arch-general/2021-March/048739.html)

* **09.12.2022:** Erster Benchmark von Michael.
  * [The Performance Of Arch Linux Powered CachyOS](https://www.phoronix.com/review/cachyos-linux-perf)

* **29.02.2024:** Phoronix führte einen weiteren Benchmark durch, der den Unterschied zwischen x86-64-v4, x86-64-v3 und x86-64 (generischen) Paketen demonstriert. Bei Beispielen wie PHP oder GCC, bei denen wir unsere PKGBUILDs anpassen, gibt es eine spürbare Leistungsverbesserung.
  * [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 veröffentlichte einen neuen Benchmark für den AMD Ryzen 9950x, der CachyOS und einige andere Linux-Distributionen einschließt.
  * [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 und RocksDB wurden mit der Phoronix Benchmark Suite kompiliert, wobei die in /etc/makepkg.conf angegebenen Kompilierungsflags ignoriert wurden, was zu unerwarteten Leistungsergebnissen für CachyOS führte.
   :::
