---
title: Postinstalación
description: Pasos a configurar después de instalar CachyOS
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
ai_translated: true
---

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

## Pasos Recomendados Después de la Instalación

### Actualizando el Sistema

:::tip
Asegúrate de consultar nuestra sección de [Seguridad y Buenas Prácticas](/es/cachyos_basic/faq#seguridad-y-buenas-prácticas) para evitar errores comunes y mantener tu sistema seguro.
:::

<Tabs>

<TabItem label="Shelly (GUI & CLI)">
    <LinkButton icon="external" href="https://www.seafoam-labs.org/shelly-alpm/overview/">Wiki de Shelly</LinkButton>
    <LinkButton icon="external" href="https://www.seafoam-labs.org/shelly-alpm/docs/cli-reference/">CLI de Shelly</LinkButton>

    [Shelly](https://github.com/Seafoam-Labs/Shelly-ALPM) es una reimaginación moderna del gestor de paquetes de Arch Linux, diseñado para ser una alternativa más intuitiva y amigable a pacman y octopi.

    Desarrollado por: [Seafoam-Labs](https://github.com/Seafoam-Labs)

    Permitiendo a los usuarios gestionar sus paquetes sin necesidad de usar la terminal.

    Algunas de las características de Shelly incluyen:

    Instalar/Desinstalar paquetes desde el AUR, repositorios oficiales, AppImages, Flatpaks y paquetes locales, ver detalles de paquetes, gestionar grupos de paquetes y más.

    ¿Por qué elegir Shelly sobre Octopi?
    - Tiene una interfaz más moderna y amigable.
    - Desarrollo y actualizaciones continuas con nuevas características y mejoras.
    - Soporta más formatos de paquetes (AUR, AppImages, Flatpaks, etc.)
    - Características de seguridad como verificación de PKGBUILDs, consulta las [Comprobaciones de Seguridad](https://www.seafoam-labs.org/shelly-alpm/docs/security/) para más información.

    <details>
        <summary>Captura de pantalla de la página principal de Shelly</summary>
        <ImageComponent imgsrc={import('~/assets/images/shelly-homepage.png')} />
    </details>
    <details>
        <summary>Pestaña de Gestión de Paquetes</summary>
        <ImageComponent imgsrc={import('~/assets/images/shelly-package-management.png')} />
    </details>
    Aquí hay algunos comandos útiles para comenzar con la CLI de Shelly:

    <details>
    <summary>Actualizar todos los paquetes (AUR, repositorios oficiales, Flatpak, etc.):</summary>
    ```sh
    shelly
    ```
    </details>
    <details>
    <summary>Actualizar paquetes estándar (derivados de Arch) + instalar paquete:</summary>
    ```sh
    shelly install --upgrade {pkg}
    # Ejemplo:
    shelly install --upgrade discord
    ```
    </details>
    <details>
    <summary>Eliminar paquete y dependencias:</summary>
    ```sh
    shelly remove {pkg}
    # Ejemplo:
    shelly remove discord
    ```
    </details>
    <details>
    <summary>Buscar paquete en AUR:</summary>
    ```sh
    shelly aur search {pkg}
    ```
    </details>
</TabItem>

<TabItem label="Usando Octopi (GUI)">

Octopi es un gestor de paquetes gráfico para distribuciones basadas en Arch que proporciona una forma conveniente de gestionar paquetes y actualizaciones.
Para actualizar tu sistema con Octopi, sigue estos pasos:

<Steps>

1. Inicia **Octopi** desde el menú de aplicaciones.
2. En la ventana principal, haz clic en el botón **Check updates** (Esquina superior izquierda), ahora junto a él **System upgrade.**
3. Octopi ahora buscará actualizaciones disponibles y te pedirá que las instales en Octopi mismo o en una terminal.
4. Para proceder con la actualización, haz clic en el botón **Apply**.
5. Octopi descargará e instalará las actualizaciones.
6. Se recomienda reiniciar tu computadora después de una gran actualización **(especialmente si el kernel recibió una actualización)**.

</Steps>

</TabItem>

<TabItem label="Usando Pacman">

<Steps>

1. Abre un emulador de terminal (o presiona `ctrl + alt + t` - `mod + return` en un WM p. ej. Qtile).
2. Ejecuta el siguiente comando para actualizar el sistema:

   ```sh
   sudo pacman -Syu
   ```
3. Se recomienda reiniciar tu computadora después de una gran actualización **(especialmente si el kernel recibió una actualización)**.

</Steps>

</TabItem>

<TabItem label="Actualización del Sistema Offline">

*CachyOS soporta actualizaciones del sistema offline usando el script [`pacman-offline`](https://github.com/eworm-de/pacman-offline). Esto permite que tu sistema descargue actualizaciones de paquetes y las aplique en el siguiente reinicio. (Sí, como en Windows)*

:::note
La herramienta `pacman-offline` se integra con la función de actualizaciones offline de systemd. Maneja automáticamente las actualizaciones del kernel y la carga de módulos.

El archivo `/etc/pacman.d/offline.conf` es crucial para gestionar qué paquetes se actualizan durante las actualizaciones regulares y offline. Asegúrate de que esté configurado correctamente para tu kernel deseado o añade los paquetes que quieras para que solo se actualicen durante la ejecución de pacman-offline y se ignoren en una actualización regular. Ejemplo: `pacman -Syu`.

**Si habilitas el temporizador de actualización automática, ya no necesitas actualizar manualmente tu sistema.**
:::

<Steps>

1. **Instala el paquete pacman-offline**

   ```bash
   sudo pacman -S pacman-offline
   ```

2. **Decirle a Pacman que lea desde la lista de ignorados de paquetes separada.**

   :::note[Añade la línea después de la sección [options]. Consulta el ejemplo a continuación como referencia.]
   :::

   ```bash title='Añade la siguiente línea al archivo /etc/pacman.conf'
   Include = /etc/pacman.d/offline.conf
   ```
   *Ejemplo*
   ```bash
   # /etc/pacman.conf
   # REPOSITORIES
   #   - can be defined here or included from another file
   #   - pacman will search repositories in the order defined here
   #   - local/custom mirrors can be added here or in separate files
   #   - repositories listed first will take precedence when packages
   #     have identical names, regardless of version number
   #   - URLs will have $repo replaced by the name of the current repo
   #   - URLs will have $arch replaced by the name of the architecture
   #
   # Repository entries are of the format:
   #       [repo-name]
   #       Server = ServerName
   #       Include = IncludePath
   #
   # The header [repo-name] is crucial - it must be present and
   # uncommented to enable the repo.
   #
   # GENERAL OPTIONS
   [options]
   # other options like 'Color', 'CheckSpace', etc. can be here
   Include = /etc/pacman.d/offline.conf
   ```
3. **Añadiendo los kernels de CachyOS para que pacman los ignore durante las actualizaciones regulares**

   La herramienta `pacman-offline` usa este archivo para determinar qué paquetes ignorar durante las actualizaciones tradicionales de pacman.

   Ejemplo: cuando ejecutas `sudo pacman -Syu`

   *Reemplaza el contenido del archivo `/etc/pacman.d/offline.conf` con lo siguiente:*

   ```text
   # Kernels de Arch Linux
   IgnorePkg = linux linux-headers linux-docs
   IgnorePkg = linux-lts linux-lts-headers linux-lts-docs
   IgnorePkg = linux-zen linux-zen-headers linux-zen-docs
   IgnorePkg = linux-hardened linux-hardened-headers linux-hardened-docs

   # Kernels de CachyOS
   IgnorePkg = linux-cachyos linux-cachyos-headers linux-cachyos-nvidia-open linux-cachyos-zfs
   IgnorePkg = linux-cachyos-bmq linux-cachyos-bmq-headers linux-cachyos-bmq-nvidia-open linux-cachyos-bmq-zfs
   IgnorePkg = linux-cachyos-bore linux-cachyos-bore-headers linux-cachyos-bore-nvidia-open linux-cachyos-bore-zfs
   IgnorePkg = linux-cachyos-deckify linux-cachyos-deckify-headers linux-cachyos-deckify-nvidia-open linux-cachyos-deckify-zfs
   IgnorePkg = linux-cachyos-eevdf linux-cachyos-eevdf-headers linux-cachyos-eevdf-nvidia-open linux-cachyos-eevdf-zfs
   IgnorePkg = linux-cachyos-gcc linux-cachyos-gcc-headers linux-cachyos-gcc-nvidia-open linux-cachyos-gcc-zfs
   IgnorePkg = linux-cachyos-hardened linux-cachyos-hardened-headers linux-cachyos-hardened-nvidia-open linux-cachyos-nvidia-hardened-zfs
   IgnorePkg = linux-cachyos-lts linux-cachyos-lts-headers linux-cachyos-lts-nvidia-open linux-cachyos-lts-zfs
   IgnorePkg = linux-cachyos-rc linux-cachyos-rc-headers linux-cachyos-rc-nvidia-open linux-cachyos-rc-nvidia-open linux-cachyos-rc-zfs
   IgnorePkg = linux-cachyos-rt-bore linux-cachyos-rt-bore-headers linux-cachyos-rt-bore-nvidia-open
   IgnorePkg = linux-cachyos-server linux-cachyos-server-headers linux-cachyos-server-nvidia-open linux-cachyos-server-zfs
   ```

   *Ahora todos esos paquetes se van a ignorar en las actualizaciones regulares pero se comprobarán durante la preparación offline.*

3. **Inicia la preparación para la actualización offline solo una vez**

   ```bash title='Ejecuta el siguiente comando'
   sudo systemctl start pacman-offline-prepare.service
   ```
   Este comando hará que pacman-offline se ejecute una vez y sincronice las bases de datos de paquetes y proceda a descargar actualizaciones pero no las instala.

</Steps>

*Si quieres que este script sea automatizado. Sigue los siguientes pasos:*

<Steps>

1. **Habilita el temporizador de preparación**

   El `pacman-offline-prepare.timer` habilitado permitirá a systemd activar este script para descargar actualizaciones a diario después de unos minutos de cada inicio del sistema.

   ```bash
   sudo systemctl enable pacman-offline-prepare.timer
   ```

2. **Reinicia tu sistema:**

   Las actualizaciones se instalarán durante el siguiente reinicio del sistema.

3. **(Opcional) Reinicios Automáticos del Sistema:**

    Habilita el `pacman-offline-reboot.timer` para reiniciar automáticamente tu sistema por defecto a las **3am** (Tu zona horaria) si hay actualizaciones pendientes. Ten en cuenta que no es siempre a la misma hora debido a la inclusión de `RandomizedDelaySec` que está establecido en 2 horas por defecto.

    ```bash
    sudo systemctl enable pacman-offline-reboot.timer
    ```

    :::tip
    Puedes editar el archivo `pacman-offline-reboot.timer` para modificar a qué hora quieres que tu sistema se reinicie si hay alguna actualización pendiente o deshabilitar el horario aleatorio.
    :::

</Steps>

</TabItem>

<TabItem label="Cachy-Update">

Fork de [Arch-Update](https://github.com/Antiz96/arch-update)

Un notificador y aplicador de actualizaciones para Arch Linux que te asiste con tareas importantes previas / posteriores a la actualización.
Incluye un applet de bandeja del sistema dinámico y clicable para una fácil integración con cualquier Entorno de Escritorio / Gestor de Ventanas.

<details>
    <summary>Cómo habilitar Cachy-Update</summary>
    Habilita Cachy-Update en `CachyOS Hello > Apps/Tweaks > Cachy Update enabled`
</details>
<details>
    <summary>Cómo deshabilitar Cachy-Update</summary>
        Deshabilita Cachy-Update en `CachyOS Hello > Apps/Tweaks > Cachy Update disabled`
            :::tip
            Si quieres mantener Cachy-Update y solo deshabilitar el applet de la bandeja del sistema, abre una terminal y ejecuta los siguientes comandos:
            ```bash
            mkdir -p ~/.config/autostart
            echo -e "[Desktop Entry]\nHidden=true" > ~/.config/autostart/arch-update-tray.desktop"
            ```
            Si quieres mantener el applet de la bandeja del sistema habilitado y simplemente deshabilitar la comprobación automática de actualizaciones, ejecuta el siguiente comando:
            ```bash
            sudo systemctl --global disable --now arch-update.timer
            ```
            :::
</details>

- Características:
  - Comprobación y listado automáticos de actualizaciones disponibles.
  - Comprobar noticias recientes de Arch Linux (y ofrece mostrarlas si las hay).
  - Comprobar paquetes huérfanos (y ofrece eliminarlos si los hay).
  - Comprobar paquetes antiguos y desinstalados en caché (y ofrece eliminarlos si los hay).
  - Comprobar si hay actualización pendiente del kernel que requiere un reinicio (y ofrece hacerlo si la hay).
  - Comprobar servicios que requieren un reinicio posterior a la actualización (y ofrece hacerlo si los hay).
  - Soporte para `sudo`, `sudo-rs`, `doas` & `run0`.

**Intervalo de comprobación de actualizaciones:** `Una vez dos minutos después del arranque y luego una vez al día con un retraso aleatorio de una hora.`

- Cómo cambiar el intervalo de comprobación de actualizaciones:

```sh title='Ejecuta el siguiente comando'
systemctl --user edit --full arch-update.timer
# Consejo: También puedes usar cualquier editor de texto de tu elección en lugar de `nano`
# p. ej EDITOR=micro systemctl --user edit --full arch-update.timer
```

<details>
<summary>Contenido predeterminado del archivo:</summary>
```systemd
[Timer]
    OnStartupSec=2min # Buscar actualizaciones dos minutos después del arranque
    RandomizedDelaySec=1h # Retraso aleatorio de una hora
    OnUnitActiveSec=1d # Buscar actualizaciones una vez al día
```
</details>
Básicamente puedes cambiar el valor de `OnUnitActiveSec` a lo que quieras. Por ejemplo, si quieres comprobar actualizaciones cada 30 minutos, cámbialo a `30m`. o cada 6 horas, cámbialo a `6h`. Consulta este [documento](https://www.freedesktop.org/software/systemd/man/latest/systemd.time.html#Parsing%20Time%20Spans) para más detalles sobre cómo establecer el intervalo de tiempo.

En caso de que quieras que Cachy-Update compruebe nuevas actualizaciones solo una vez al arranque, simplemente puedes eliminar la línea `OnUnitActiveSec` por completo.

Gracias a [Antiz](https://github.com/Antiz96) por mantener el proyecto upstream Arch-Update y por la implementación de Cachy-Update

</TabItem>

</Tabs>

### Configurando el Firewall (ufw)
:::note
UFW está habilitado por defecto después de la instalación.
:::
Para configurar ufw, sigue estos pasos:

<Tabs>

<TabItem label="Habilitar">

```bash
sudo ufw enable
```

</TabItem>

<TabItem label="Deshabilitar">

```bash
sudo ufw disable
```

</TabItem>

<TabItem label="Permitir">

Por defecto, ufw ignora el tráfico entrante y permite el saliente; puedes añadir reglas específicas al firewall para bloquear o permitir conexiones específicas.

```bash
# Ejemplo 1, permitir tráfico ssh:
sudo ufw allow ssh
# Ejemplo 2, abrir puerto 12345 para tráfico TCP & UDP:
sudo ufw allow 12345

# El texto o número de puerto se puede ajustar según sea necesario, como 12345/udp para permitir solo tráfico UDP o reemplazando ssh con un nombre de programa
```

</TabItem>

<TabItem label="Denegar">

Por defecto, ufw ignora el tráfico entrante y permite el saliente; puedes añadir reglas específicas al firewall para bloquear o permitir conexiones específicas.

```bash
# Ejemplo 1, denegar tráfico ssh:
sudo ufw deny ssh
# Ejemplo 2, cerrar puerto 12345 para tráfico TCP & UDP:
sudo ufw deny 12345

# El texto o número de puerto se puede ajustar según sea necesario, como 12345/udp para denegar solo tráfico UDP o reemplazando ssh con un nombre de programa
```

</TabItem>

<TabItem label="Estado">

```bash
sudo ufw status verbose
```
:::tip
Si no quieres olvidar por qué abriste/cerraste un puerto, añade un comentario a la regla.
```bash
# Ejemplo 1, abrir puerto 12345 para tráfico TCP & UDP con un comentario:
sudo ufw allow 12345 comment 'Ejemplo'
# Ejemplo 2, cerrar puerto 6789 para TCP con un comentario:
sudo ufw deny 6789/tcp comment 'Los comentarios pueden tener espacios'
```
:::
</TabItem>

</Tabs>

:::note
Ten cuidado al configurar reglas del firewall, ya que las reglas configuradas incorrectamente pueden bloquearte de tu propio sistema.
:::

:::note
También puedes configurarlo gráficamente usando la sección "Firewall" en la configuración de KDE Plasma.
:::

:::note
Los cambios en permitir/denegar surten efecto después de que ufw se haya reiniciado. Deshabilita y luego habilita ufw de nuevo para un resultado inmediato.
:::

### Habilitando el Menú Global
Para algunas aplicaciones como Visual Studio Code, el menú global puede no funcionar o puede estar adjunto a la aplicación padre en lugar del panel.

```sh
# Para habilitar el soporte de menú global, ejecuta el comando y reinicia la aplicación.
sudo pacman -S appmenu-gtk-module libdbusmenu-glib
```

## Configuraciones Opcionales

### Cambiando el Shell Predeterminado

Actualmente, CachyOS usa [fish](https://fishshell.com/) como el shell de inicio predeterminado del usuario. Sin embargo, puedes cambiar
el shell predeterminado a lo que quieras.

<Tabs>
   <TabItem label='bash'>

      Este es el shell predeterminado en casi todas las distribuciones Linux. También se usa como el shell de inicio del usuario root. bash
      tiene funcionalidad básica de autocompletado y gestión de historial fácil. Se diferencia de zsh y fish en que no tiene
      el ecosistema de personalización y plugins que tanto fish como zsh tienen.


      ```sh title='Cambiar tu shell predeterminado a bash'
      chsh -s /usr/bin/bash
      ```

   </TabItem>

   <TabItem label='zsh'>

      Proporcionamos una [configuración de zsh](https://github.com/CachyOS/cachyos-zsh-config) con plugins y configuraciones comúnmente usadas.
      Su objetivo es tener funcionalidad 1:1 con nuestra [configuración de fish](https://github.com/CachyOS/cachyos-fish-config).
      Este también es el shell predeterminado usado en MacOS.

      ```sh title='Cambiar el shell predeterminado a zsh'
      chsh -s /usr/bin/zsh
      ```

   </TabItem>
</Tabs>

### Actualizando/usando [tldr](https://github.com/tldr-pages/tldr)

:::note
CachyOS usa [tealdeer](https://github.com/tealdeer-rs/tealdeer) que es una implementación más rápida basada en Rust del tldr original
:::

Esta herramienta es extremadamente útil para aquellos que no quieren leer mucho o perder tiempo leyendo una página de ayuda/man.

<Steps>

1. ```sh title="Abre una terminal y ejecuta el siguiente comando"
   tldr --update
   ```
2. Ejemplo de uso de tldr:
   ```sh
   tldr java
     Execute a `.jar` program:

      java -jar filename.jar

   # Como puedes ver, es realmente útil, y se añaden nuevas herramientas/páginas con el tiempo.
   ```

</Steps>

### Gestionando AppImages

AppImages son aplicaciones portátiles que se ejecutan en la mayoría de distribuciones Linux sin necesidad de instalación o permisos de root.

:::note[Todas las AppImages requieren permisos de ejecución para funcionar.]
Puedes establecer el permiso de ejecución usando el siguiente comando:
```sh
chmod +x /ruta/a/tu/appimage
```
O haz clic derecho en el archivo AppImage, ve a `Propiedades` > `Permisos`, y marca la casilla que dice `Permitir ejecutar el archivo como un programa.`
:::

:::note[Antes de ejecutar AppImages, asegúrate de que FUSE (Filesystem in Userspace) está instalado en tu sistema.]
```sh
sudo pacman -S fuse2
```
:::

Para gestionar AppImages, puedes usar [gearlever](https://github.com/mijorus/gearlever), que proporciona una forma fácil de integrar AppImages en tu sistema.

`gearlever` es una herramienta gráfica que simplifica la gestión de AppImages en tu sistema. Se integra con tu entorno de escritorio, haciendo fácil ejecutar y gestionar AppImages.

Para instalar gearlever, sigue estos pasos:

        <Steps>
    1. Instala flatpak si aún no lo has hecho:
        ```sh
        sudo pacman -S flatpak
        ```
    2. Reinicia tu sistema.
    3. Instala gearlever usando flatpak:
              ```sh
        flatpak install flathub it.mijorus.gearlever
        ```
    4. Después de la instalación. Cierra sesión y vuelve a iniciar sesión para ver gearlever en tu menú de aplicaciones.
        </Steps>

### Configurando el Acceso a Comparticiones Samba

Samba es una reimplementación gratuita del protocolo de red SMB. Para conectarte a tu servidor samba, se ha hecho disponible una configuración útil para los usuarios de CachyOS, pero requiere cambiar la configuración de tu servidor samba.

#### Instalando y usando el archivo smb.conf de CachyOS

Para usar el archivo smb.conf conveniente, primero instala un paquete específico que proporciona el archivo smb.conf requerido. Luego, reemplaza el smb.conf existente de tu servidor con este archivo y reconfigura tus volúmenes compartidos.

:::note[Esta guía asume que ya tienes un servidor Samba funcionando]
:::

<Steps>
    1. Crea una copia de seguridad de tu archivo `smb.conf` original, típicamente ubicado en `/etc/samba/smb.conf` en sistemas Linux.
    2. Instala el paquete de configuraciones Samba de CachyOS en tu máquina cliente:
        ```sh
        sudo pacman -S cachyos-samba-settings
        ```
    3. Copia el `smb.conf` desde tu máquina cliente al servidor Samba.
    4. Abre y edita el archivo para añadir tus directorios compartidos, impresoras, etc.
    5. Reinicia el servicio Samba en tu servidor:
        ```sh
        sudo systemctl restart --now samba
        ```
    6. En la máquina cliente, accede a tus recursos compartidos a través de tu gestor de archivos (p. ej., `smb://<tu_ip_servidor>/<nombre_comparticion>`).

        Si está configurado correctamente, se te pedirá las credenciales de inicio de sesión. Recuerda seleccionar la opción para guardar tu información de inicio de sesión si lo deseas.
</Steps>

### Soporte AppArmor usando perfiles AppArmor.d

Cita de Wikipedia:

*AppArmor ("Application Armor") es un módulo de seguridad del kernel Linux que permite al administrador del sistema restringir las capacidades de los programas con perfiles por programa. Los perfiles pueden permitir capacidades como acceso a red, acceso a sockets crudos y el permiso de leer, escribir o ejecutar archivos en rutas coincidentes.*

Esto es solo una introducción sobre cómo instalar una configuración básica de AppArmor, si no estás familiarizado con AppArmor. Por favor no continúes sin entender las implicaciones.

Para información más detallada sobre AppArmor.d y cómo crear tus propios perfiles, consulta la [documentación de AppArmor.d](https://github.com/roddhjav/apparmor.d?tab=readme-ov-file#configuration).

:::caution[Procede con precaución. Una configuración de AppArmor mal hecha puede causar problemas.]
:::

<Steps>

1. Añade los siguientes parámetros del kernel a tu Gestor de Arranque, consulta [Configuración del Gestor de Arranque](/es/configuration/boot_manager_configuration) como referencia

   ```text
   lsm=landlock,lockdown,yama,integrity,apparmor,bpf
   ```

2. Instala los paquetes apparmor y apparmord **(Set de más de +1500 perfiles)**
   ```bash
   sudo pacman -S apparmor apparmor.d
   ```

3. Habilita/Inicia el servicio AppArmor

   ```bash
   systemctl enable --now apparmor.service
   ```

4. Habilita la caché para los perfiles AppArmor

   ```shell
   # /etc/apparmor/parser.conf
   ## Añade las siguientes líneas:
   write-cache
   Optimize=compress-fast
   cache-loc /etc/apparmor/earlypolicy/
   ```
   Guarda el archivo y reinicia.
</Steps>
