Eliminar totes les restes de Firefox i tornar a instal·lar Firefox 153 en català (ca)

Perfecte. Et deixo un procediment complet per a Deepin:

  1. Eliminar totes les restes de Firefox
  2. Tornar a instal·lar Firefox 153 en català (ca)

⚠️ Això elimina el perfil de Firefox: adreces, historial, contrasenyes, extensions, etc.
Si vols conservar el perfil, fes primer la còpia opcional del pas 1.


1. Tanca Firefox i fes una còpia opcional

pkill -x firefox || true
pkill -x firefox-esr || true

Còpia de seguretat opcional del perfil:

mkdir -p "$HOME/Backup"
[ -d "$HOME/.mozilla/firefox" ] && cp -a "$HOME/.mozilla/firefox" "$HOME/Backup/firefox-perfil-$(date +%Y%m%d-%H%M%S)" || true

Si després vols recuperar adreces/contrasenyes, podràs usar aquesta carpeta.


2. Elimina paquets instal·lats de Firefox

pkgs=$(dpkg-query -W -f='${Package}\n' 2>/dev/null | grep -E '^firefox' || true)

if [ -n "$pkgs" ]; then
    sudo apt-get purge -y $pkgs
    sudo apt-get autoremove --purge -y
fi

3. Elimina possibles versions Flatpak o Snap

Flatpak:

if command -v flatpak >/dev/null 2>&1; then
    flatpak uninstall --delete-data -y org.mozilla.firefox || true
    flatpak uninstall --delete-data -y org.mozilla.Firefox || true
fi

rm -rf "$HOME/.var/app/org.mozilla.firefox"* "$HOME/.var/app/org.mozilla.Firefox"* 2>/dev/null || true

Snap:

if command -v snap >/dev/null 2>&1; then
    sudo snap remove --purge firefox || true
fi

4. Elimina configuració, cache i residus de l’usuari

rm -rf "$HOME/.mozilla/firefox"
rm -rf "$HOME/.cache/mozilla"
rm -rf "$HOME/.config/mozilla"
rm -rf "$HOME/.local/share/mozilla"
rm -rf "$HOME/.firefox"

rm -rf "$HOME/.local/share/applications/firefox"* 2>/dev/null || true
rm -rf "$HOME/.local/share/applications/"*irefox*.desktop 2>/dev/null || true

5. Elimina residus del sistema

sudo rm -rf /opt/firefox
sudo rm -rf /opt/firefox-esr
sudo rm -rf /usr/lib/firefox
sudo rm -rf /usr/lib/firefox-esr
sudo rm -rf /usr/lib/mozilla/firefox*
sudo rm -rf /usr/local/lib/firefox
sudo rm -rf /usr/local/lib/firefox-esr
sudo rm -rf /usr/local/lib/mozilla/firefox*
sudo rm -rf /usr/local/share/firefox
sudo rm -rf /usr/share/firefox
sudo rm -rf /etc/firefox

sudo rm -f /usr/local/bin/firefox
sudo rm -f /usr/local/bin/firefox-esr
sudo rm -f /usr/bin/firefox
sudo rm -f /usr/bin/firefox-esr

sudo rm -rf /usr/share/applications/firefox*.desktop
sudo rm -rf /usr/share/applications/*irefox*.desktop
sudo rm -rf /usr/share/icons/hicolor/*/apps/firefox*
sudo rm -rf /usr/share/pixmaps/firefox*

sudo rm -f /usr/share/metainfo/org.mozilla.firefox*.xml
sudo rm -f /usr/share/appdata/org.mozilla.firefox*.xml

També elimina possibles repositoris o claus de Mozilla afegits manualment:

sudo rm -rf /etc/apt/sources.list.d/mozilla*
sudo rm -rf /etc/apt/preferences.d/mozilla*
sudo rm -rf /usr/share/keyrings/packages.mozilla.org*
sudo rm -rf /etc/apt/trusted.gpg.d/packages.mozilla.org*

Actualitza la base de dades d’APT:

sudo apt-get update

Instal·lar Firefox 153 en català

El codi d’idioma català és:

ca

6. Instal·la dependències necessàries

sudo apt-get install -y wget bzip2 ca-certificates xdg-utils

7. Mira quines versions 153.x hi ha disponibles

wget -qO- https://archive.mozilla.org/pub/firefox/releases/ | grep -oE '153\.[0-9]+(\.[0-9]+)?' | sort -Vu

Si surt, per exemple:

153.0
153.0.1

fes servir la més nova, per exemple 153.0.1.


8. Descarrega Firefox 153 en català

Substitueix VER=153.0 per la versió exacta que vulguis.

VER=153.0
URL="https://archive.mozilla.org/pub/firefox/releases/${VER}/linux-x86_64/ca/firefox-${VER}.tar.bz2"

cd /tmp
wget "$URL"

Si el teu sistema és ARM64, canvia linux-x86_64 per linux-aarch64.


9. Instal·la a /opt

sudo rm -rf /opt/firefox
sudo tar -xjf "firefox-${VER}.tar.bz2" -C /opt
sudo ln -sf /opt/firefox/firefox /usr/local/bin/firefox

Comprova la versió:

/opt/firefox/firefox --version

Hauria de mostrar alguna cosa com:

Mozilla Firefox 153.x

10. Crea l’entrada del menú de Deepin

ICON="/opt/firefox/browser/chrome/icons/default/default128.png"
[ -f "$ICON" ] || ICON="/opt/firefox/icons/default128.png"
[ -f "$ICON" ] || ICON="firefox"

sudo tee /usr/share/applications/firefox.desktop > /dev/null <<EOF
[Desktop Entry]
Type=Application
Version=1.0
Name=Firefox
Name[ca]=Firefox
GenericName=Web Browser
GenericName[ca]=Navegador web
Comment=Browse the Web
Comment[ca]=Navegueu per la web
Exec=/opt/firefox/firefox %u
Icon=$ICON
Terminal=false
StartupWMClass=firefox
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;application/x-xp-install;
Categories=Network;WebBrowser;
EOF

Actualitza la base de dades d’escriptoris:

sudo update-desktop-database /usr/share/applications || true

11. Defineix Firefox com a navegador predeterminat

xdg-settings set default-web-browser firefox.desktop || true
xdg-mime default firefox.desktop x-scheme-handler/http || true
xdg-mime default firefox.desktop x-scheme-handler/https || true

A Deepin també pots comprovar-ho a:

Configuració → Aplicacions → Aplicacions predeterminades → Navegador web

12. Obre Firefox

nohup /opt/firefox/firefox >/dev/null 2>&1 &

O simplement busca Firefox al llançador de Deepin.


Comprovació final

Per veure si queden paquets Firefox:

dpkg -l | grep -i firefox || echo "No queden paquets Firefox"

Per veure els fitxers principals instal·lats:

ls -ld /opt/firefox
ls -l /usr/local/bin/firefox
ls -l /usr/share/applications/firefox.desktop

I per comprovar la versió:

firefox --version

o:

/opt/firefox/firefox --version

Nota important

Aquesta instal·lació amb .tar.bz2 és manual.
Si vols actualitzacions automàtiques, és millor usar el repositori oficial de Mozilla, però llavors potser no quedarà fixada exactament la versió 153 si Mozilla ja ha publicat una versió més nova.

backup_mut.sh

I tant! Afegim l’opció E) Imatge del sistema que ho copia tot (arrel / sencera, exclòs només els sistemes virtuals com /proc, /sys, /dev…). Necessita sudo, perquè hi ha fitxers de sistema que l’usuari normal no pot llegir.

Aquí tens l’script actualitzat sencer:

#!/bin/bash
#====================================================#
#  BACKUP_MUT.SH - Còpia de seguretat i restauració  #
#  Compatible amb Deepin / Ubuntu / Debian           #
#====================================================#

USUARI="$USER"
CASA="$HOME"
DATA="$(date +%Y-%m-%d_%H%M%S)"
CARPETA_BACKUPS="$CASA/Backups"

capcalera() {
    clear
    echo "=========================================="
    echo "  BACKUP_MUT - BACKUP I RESTAURACIÓ"
    echo "=========================================="
    echo
}

tria_origen() {
    echo "Tria el directori ORIGEN:"
    echo "  A) $CASA (tot el directori d'usuari)"
    echo "  B) $CASA/Documents"
    echo "  C) $CASA/Pictures"
    echo "  D) $CASA/Downloads"
    echo "  E) Imatge del sistema (ho copia tot)"
    echo "  S) Firefox i sistema"
    echo "  R) Especificar ruta manualment"
    echo
    read -p "Opció [A/B/C/D/E/S/R]: " o
    case "$o" in
        a|A) ORIGEN="$CASA" ;;
        b|B) ORIGEN="$CASA/Documents" ;;
        c|C) ORIGEN="$CASA/Pictures" ;;
        d|D) ORIGEN="$CASA/Downloads" ;;
        e|E) ORIGEN="__IMATGE__" ;;
        s|S) ORIGEN="__SISTEMA__" ;;
        r|R) read -p "Introdueix la ruta completa del directori: " ORIGEN ;;
        *)   ORIGEN="" ;;
    esac
}

tria_desti() {
    echo
    echo "Tria el DESTÍ de la còpia:"
    echo "  1) $CARPETA_BACKUPS (disc intern)"
    echo "  2) Unitat externa / USB (/media/$USUARI)"
    echo "  3) Especificar ruta manualment"
    read -p "Opció [1-3]: " d
    case "$d" in
        2) echo "   Unitats detectades: $(ls /media/$USUARI 2>/dev/null)"
           read -p "   Nom de la unitat: " disc
           DESTI="/media/$USUARI/$disc/Backups" ;;
        3) read -p "Ruta completa de destí: " DESTI ;;
        *) DESTI="$CARPETA_BACKUPS" ;;
    esac
    mkdir -p "$DESTI" 2>/dev/null
}

fer_backup() {
    echo "--- MODE BACKUP ---"
    echo
    tria_origen

    if [ -z "$ORIGEN" ]; then
        echo "Opció no vàlida."
        return 1
    fi

    tria_desti

    if [ "$ORIGEN" = "__IMATGE__" ]; then
        echo
        echo "ATENCIO: Es copiarà TOT el sistema (excepte /proc, /sys,"
        echo "/dev, /run, /media, /mnt i /tmp)."
        echo "Calen permisos d'administrador (sudo) i pot trigar força."
        echo "Comprova que el destí tingui prou espai lliure!"
        echo
        read -p "Vols continuar? [s/N]: " conf
        if [ "$conf" != "s" ] && [ "$conf" != "S" ]; then
            echo "Operació cancel·lada."
            return 1
        fi
        if ! sudo -v; then
            echo "Error: no s'han obtingut permisos d'administrador."
            return 1
        fi
        FITXER="$DESTI/imatge_sistema_$DATA.tar.gz"
        sudo tar -czpf "$FITXER" \
            --directory=/ \
            --exclude=./proc \
            --exclude=./sys \
            --exclude=./dev \
            --exclude=./run \
            --exclude=./media \
            --exclude=./mnt \
            --exclude=./tmp \
            --exclude=./lost+found \
            --exclude=".${DESTI}" \
            .
    elif [ "$ORIGEN" = "__SISTEMA__" ]; then
        # Perfil de Firefox (deb o Flatpak) + llista de paquets instal·lats
        FF="$CASA/.mozilla/firefox"
        [ -d "$FF" ] || FF="$CASA/.var/app/org.mozilla.firefox/.mozilla/firefox"
        LLISTA="/tmp/llista_paquets_$DATA.txt"
        dpkg --get-selections > "$LLISTA" 2>/dev/null   # Deepin = Debian
        FITXER="$DESTI/backup_firefox_sistema_$DATA.tar.gz"
        tar -czf "$FITXER" "$FF" "$LLISTA"
    else
        if [ ! -e "$ORIGEN" ]; then
            echo "Error: '$ORIGEN' no existeix."
            return 1
        fi
        NOM="$(basename "$ORIGEN")"
        FITXER="$DESTI/backup_${NOM}_$DATA.tar.gz"
        tar -czf "$FITXER" -C "$(dirname "$ORIGEN")" "$NOM" \
            --exclude="Backups" \
            --exclude=".cache" \
            --exclude=".local/share/Trash"
    fi

    if [ $? -eq 0 ]; then
        echo
        echo "Còpia de seguretat creada correctament:"
        echo "  $FITXER ($(du -h "$FITXER" | cut -f1))"
    else
        echo "Error: no s'ha pogut crear la còpia."
    fi
}

restaurar() {
    echo "--- MODE RESTAURACIÓ ---"
    echo
    echo "On vols buscar les còpies?"
    echo "  1) $CARPETA_BACKUPS (disc intern)"
    echo "  2) Especificar carpeta manualment"
    read -p "Opció [1-2]: " o
    CARPETA="$CARPETA_BACKUPS"
    [ "$o" = "2" ] && read -p "Carpeta: " CARPETA

    echo
    echo "Còpies disponibles:"
    ls -1 "$CARPETA"/*.tar.gz 2>/dev/null | cat -n
    echo
    read -p "Número de la còpia a restaurar: " num
    FITXER="$(ls -1 "$CARPETA"/*.tar.gz 2>/dev/null | sed -n "${num}p")"

    if [ ! -f "$FITXER" ]; then
        echo "Error: no s'ha trobat la còpia."
        return 1
    fi

    # Cas especial: imatge completa del sistema
    case "$(basename "$FITXER")" in
        imatge_sistema*)
            echo
            echo "ATENCIO: Es sobreescriuran els fitxers del sistema actual."
            echo "Recomanat fer-ho des d'un Live USB."
            read -p "Vols continuar? [s/N]: " conf
            if [ "$conf" = "s" ] || [ "$conf" = "S" ]; then
                sudo tar -xzpf "$FITXER" -C / && echo "Imatge del sistema restaurada."
            else
                echo "Operació cancel·lada."
            fi
            return 0
            ;;
    esac

    read -p "On vols restaurar-ho? [$CASA]: " DEST
    [ -z "$DEST" ] && DEST="$CASA"
    mkdir -p "$DEST"

    if tar -xzf "$FITXER" -C "$DEST"; then
        echo "Restauració completada a: $DEST"
        echo "(Els fitxers queden dins la seva subcarpeta original)"
    else
        echo "Error durant la restauració."
    fi
}

#==================== PROGRAMA PRINCIPAL ====================
while true; do
    capcalera
    echo "1) Fer còpia de seguretat (backup)"
    echo "2) Restaurar còpia de seguretat"
    echo "3) Sortir"
    echo
    read -p "Tria una opció [1-3]: " op

    case "$op" in
        1) fer_backup ;;
        2) restaurar ;;
        3) echo "Adéu!"; exit 0 ;;
        *) echo "Opció no vàlida" ;;
    esac

    echo
    read -p "Prem ENTER per continuar..."
done

Per actualitzar el teu fitxer:

nano ~/.local/bin/backup_mut.sh
# (enganxa el codi nou, Ctrl+O per desar, Ctrl+X per sortir)
backup_mut.sh

Notes sobre l’opció E:

  • Et demanarà la contrasenya de sudo abans de començar.
  • Pot trigar molt de temps (depèn de la mida del disc) i el fitxer serà gran; millor desar-lo en un disc extern amb prou espai.
  • S’exclouen /proc, /sys, /dev, /run, /media, /mnt i /tmp perquè són sistemes virtuals o temporals que no s’han de copiar.
  • El fitxer .tar.gz resultant serà de propietat root (es crea amb sudo), però el podràs llegir i restaurar sense problemes.
  • La restauració de la imatge completa es fa sobre / i demana confirmació; idealment s’hauria de fer des d’un Live USB.

backup office 26.4 deepin

Amb molt de gust. 😊 Aquest seria l’script que jo utilitzaria. Hi he afegit:

  • ✅ Data automàtica (AAAA-MM-DD_HH-MM)
  • ✅ Comprovació que el USB està muntat.
  • ✅ Comprovació que existeix /opt/libreoffice26.2.
  • ✅ Còpia del programa.
  • ✅ Còpia de tota la configuració.
  • ✅ Informació de la versió.
  • ✅ Llista de paquets.
  • ✅ Informació dels enllaços simbòlics.
  • ✅ Fitxer de registre (backup.log).
#!/bin/bash
#
# ============================================
# Backup LibreOffice 26.2
# Autor: Miquel + ChatGPT
# ============================================

USB="/media/Miquel/6E6F-FD54"

DATA=$(date +%F_%H-%M)

DEST="$USB/LibreOffice26_Backup_$DATA"

echo
echo "==============================================="
echo "        BACKUP LIBREOFFICE 26.2"
echo "==============================================="
echo

#-------------------------------------------------
# Comprovacions
#-------------------------------------------------

if [ ! -d "$USB" ]; then
    echo "ERROR: No s'ha trobat el dispositiu USB."
    exit 1
fi

if [ ! -d "/opt/libreoffice26.2" ]; then
    echo "ERROR: No existeix /opt/libreoffice26.2"
    exit 1
fi

mkdir -p "$DEST"/{programa,configuracio,info}

#-------------------------------------------------
# Programa
#-------------------------------------------------

echo "Copiant LibreOffice..."

sudo rsync -a --info=progress2 \
    /opt/libreoffice26.2/ \
    "$DEST/programa/libreoffice26.2/"

#-------------------------------------------------
# Configuració usuari
#-------------------------------------------------

echo
echo "Copiant configuració..."

rsync -a \
    ~/.config/libreoffice/4/user/ \
    "$DEST/configuracio/user/"

#-------------------------------------------------
# Informació
#-------------------------------------------------

echo
echo "Guardant informació..."

libreoffice --version \
    > "$DEST/info/libreoffice_version.txt"

dpkg -l | grep libreoffice \
    > "$DEST/info/libreoffice_paquets.txt"

dpkg -l | grep hunspell \
    >> "$DEST/info/libreoffice_paquets.txt"

dpkg -l | grep hyphen \
    >> "$DEST/info/libreoffice_paquets.txt"

dpkg -l | grep mythes \
    >> "$DEST/info/libreoffice_paquets.txt"

which libreoffice \
    > "$DEST/info/enllacos.txt"

ls -l "$(which libreoffice)" \
    >> "$DEST/info/enllacos.txt"

#-------------------------------------------------
# Log
#-------------------------------------------------

{
echo "Backup LibreOffice"
echo "Data: $(date)"
echo
echo "Origen programa : /opt/libreoffice26.2"
echo "Origen perfil   : ~/.config/libreoffice/4/user"
echo
echo "Destí:"
echo "$DEST"
} > "$DEST/backup.log"

echo
echo "==============================================="
echo "BACKUP FINALITZAT CORRECTAMENT"
echo
echo "Carpeta creada:"
echo
echo "$DEST"
echo
echo "==============================================="

El resultat serà semblant a aquest:

LibreOffice26_Backup_2026-08-02_17-35/
│
├── programa/
│   └── libreoffice26.2/
│
├── configuracio/
│   └── user/
│
├── info/
│   ├── libreoffice_version.txt
│   ├── libreoffice_paquets.txt
│   └── enllacos.txt
│
└── backup.log

Una darrera millora que et proposaria

Com que ja tens diversos scripts de còpia de seguretat (backup_mut_new.sh, etc.), jo faria que aquest no copiés els fitxers directament, sinó que al final generés un únic fitxer comprimit:

LibreOffice26_Backup_2026-08-02_17-35.tar.zst

o bé

LibreOffice26_Backup_2026-08-02_17-35.tar.gz

Això ocupa menys espai, és més ràpid de copiar i és molt més còmode de restaurar. Crec que és la millor opció per conservar aquesta instal·lació de LibreOffice durant molt de temps.

⭐ Aplicacions instal·lades no disponibles en servidor de Deepin

Firefox

Aquí tens el resum dels 5 passos que vam seguir per instal·lar Firefox 152.0.5 des de ~/Downloads/firefox-152.0.5.tar.xz:


1. Extreure el fitxer

cd ~/Downloads
tar -xf firefox-152.0.5.tar.xz

2. Moure la carpeta a /opt

sudo mv firefox /opt/firefox-152

3. Crear enllaç simbòlic al terminal

sudo ln -sf /opt/firefox-152/firefox /usr/local/bin/firefox

4. Crear l’accés directe al menú d’aplicacions

A ~/.local/share/applications/firefox.desktop amb les dades necessàries (nom, icona, executable, etc.).

5. Configurar el català

Des de about:preferencesGeneralIdioma, afegir Català com a idioma preferit.


Resultat: ✅ Firefox 152.0.5 instal·lat, funcional des del menú d’aplicacions i des del terminal.



Visual Studio Code


VLC


LibreOffice

com vull instal·lar la versió catalana


Enllaços ràpits


Synology assistant

Pas 1: Instal·lar el Synology Assistant

flatpak install flathub com.synology.SynologyAssistant

Pas 2: Executar l’aplicació

Un cop instal·lat, pots obrir-lo de dues maneres:

Des de la terminal:

flatpak run com.synology.SynologyAssistant

qBittorrent


Calibre

Restablir TOT Calibre als valors per defecte

Si vols restablir tota la configuració de Calibre, executa al terminal:

# Tanca Calibre primer!
mv ~/.config/calibre ~/.config/calibre.backup

Instal·lador oficial de Calibre (RECOMANAT)

Aquesta és la manera oficial que recomana el propi Calibre. Obre el terminal i executa:

sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin

Què fa aquesta comanda?

  • sudo -v: demana la contrasenya d’administrador
  • wget: descarrega l’script oficial d’instal·lació
  • sudo sh /dev/stdin: l’executa amb permisos de root

Un cop acabi, podràs obrir Calibre des del menú d’aplicacions o escrivint calibre al terminal.


Desinstal·lar calibre

sudo apt remove calibre

Visual Vode

Synology Assistan

backup_mut

correu electronic

Llibre d’0ffice


Backup_mut

Posar a l’escriptori backup_mut.txt . Aplicar aquesta comanda:

sudo cp /home/Miquel/Desktop/backup_mut-ok.txt /usr/local/bin/backup_mut

amb lsblk podem veure la estructura i les particions del sistema Deepin

Clar, aquí tens una descripció detallada de l’estructura de particions del teu sistema Deepin basant-me en la sortida de lsblk:


Disc sda – 476,9 GB (disc principal)

És el disc intern del sistema on hi ha Deepin instal·lat.

sda1 – 100 MB → /boot/efi

Partició EFI System Partition (ESP). Conté el carregador d’arrencada (bootloader) en format UEFI. És essencial per a l’inici del sistema.

sda2 – 16 MB

Partició Microsoft Reserved Partition (MSR). Reservada per Windows per a metadades internes. No té punt de muntatge.

sda3 – 346,4 GB → /media/Miquel/windows

Partició principal de Windows (probablement C:). Muntada en modo lectura/escriptura des de Deepin, la tens accés a /media/Miquel/windows.

sda4 – 1,2 GB

Partició de recuperació de Windows (WinRE). Conté eines per restaurar Windows en cas de fallada. No té punt de muntatge actiu.

sda5 – 129,3 GB → /var, /persistent/ostree, /ostree, /sysroot/ostree, /sysroot

Partició principal de Deepin (basada en OSTree). Això és típic de Deepin V23 o versions amb sistema immutable/atomic.

  • /var: Dades variables del sistema (logs, bases de dades, spool, etc.)
  • /ostree i /persistent/ostree: Sistema de desplegament OSTree (similar a una actualització atòmica).
  • /sysroot i /sysroot/ostree: Arrel del sistema operatiu (root filesystem).

Disc sdb – 57,7 GB (disc extern o USB)

sdb1 – 57,7 GB → /media/Miquel/backup

Dispositiu extraïble (la columna RM = 1 indica que és extraïble). Conté una única partició amb tot l’espai, muntada com a còpia de seguretat (backup).


Resum visual

sda (476,9 GB) ── Disc intern
├─ sda1 (100 MB)  → /boot/efi          → Arrencada UEFI
├─ sda2 (16 MB)   →                     → Reserva MSR (Windows)
├─ sda3 (346,4 GB)→ /media/Miquel/windows → Windows
├─ sda4 (1,2 GB)  →                     → Recuperació Windows
└─ sda5 (129,3 GB)→ /var, /ostree...   → Deepin (sistema OSTree)

sdb (57,7 GB)  ── Disc extraïble
└─ sdb1 (57,7 GB)→ /media/Miquel/backup  → Còpia de seguretat

Tens un sistema dual (Deepin + Windows) en el mateix disc, amb Deepin muntat sobre una estructura OSTree (sistema atòmic/immutable) i un disc extern dedicat a còpies de seguretat.

Fem un llistat de backup mut

$ cat -n /usr/local/bin/backup_mut

#!/bin/bash
# Indica al sistema que aquest fitxer s'ha d'executar amb l'intèrpret Bash.

# ==========================================
# 1. CONFIGURACIÓ INICIAL I COLORS
# ==========================================

VERMELL='\033[0;31m'
VERD='\033[0;32m'
GROC='\033[1;33m'
BLAU='\033[0;34m'
NC='\033[0m'

# Opcions base de rsync; s'hi afegeixen flags segons el sistema de fitxers del destí
RSYNC_OPTS="-avh --progress"

clear

# ==========================================
# 2. FUNCIONS DE DETECCIÓ I MUNTATGE DE DISCS
# ==========================================

# disc_sistema: nom del disc físic on viu el Deepin (ex: "sda").
disc_sistema() {
    local arrel
    arrel=$(findmnt -n -o SOURCE / 2>/dev/null)
    lsblk -ndo PKNAME "$arrel" 2>/dev/null | head -n 1
}

# detecta_discos: omple els vectors amb les particions (o discs sencers amb
# sistema de fitxers propi) de tots els discs que NO siguin el del sistema.
detecta_discos() {
    local sys part tipus disc mp mida label fst

    sys=$(disc_sistema)

    DISC_NOM=(); DISC_MIDA=(); DISC_ETIQUETA=(); DISC_MUNTATGE=(); DISC_MUNTAT=()
    NUM_DISCS=0

    while read -r part tipus; do
        if [ "$tipus" == "disk" ]; then
            disc=$(basename "$part")
        else
            disc=$(lsblk -ndo PKNAME "$part" 2>/dev/null | head -n 1)
        fi

        mp=$(lsblk -ndo MOUNTPOINT "$part" 2>/dev/null | head -n 1)
        fst=$(lsblk -ndo FSTYPE "$part"    2>/dev/null | head -n 1)

        # Mai el disc físic on viu el Deepin (ni les seves particions)
        [ "$disc" == "$sys" ] && continue
        # Descarta dispositius sense sistema de fitxers útil
        case "$fst" in
            ""|swap|crypto_LUKS) continue ;;
        esac
        # Descarta punts de muntatge propis del sistema operatiu
        case "$mp" in
            /|/boot|/boot/efi|/efi) continue ;;
        esac

        mida=$(lsblk -ndo SIZE "$part"  2>/dev/null | head -n 1)
        label=$(lsblk -ndo LABEL "$part" 2>/dev/null | head -n 1)

        NUM_DISCS=$((NUM_DISCS + 1))
        DISC_NOM[NUM_DISCS]="$part"
        DISC_MIDA[NUM_DISCS]="$mida"
        DISC_ETIQUETA[NUM_DISCS]="${label:-sense etiqueta}"
        DISC_MUNTATGE[NUM_DISCS]="$mp"
        if [ -n "$mp" ]; then
            DISC_MUNTAT[NUM_DISCS]="si"
        else
            DISC_MUNTAT[NUM_DISCS]="no"
        fi
    done < <(lsblk -nlp -o NAME,TYPE 2>/dev/null | awk '$2 == "part" || $2 == "disk" {print $1, $2}')
}

# munta_disc <índex>: monta la unitat amb udisksctl si cal (no cal sudo).
munta_disc() {
    local idx="$1" mp
    [ "${DISC_MUNTAT[$idx]}" == "si" ] && return 0

    if ! command -v udisksctl >/dev/null 2>&1; then
        echo -e "${VERMELL}udisksctl no disponible. Monta el disc des del gestor de fitxers.${NC}"
        return 1
    fi

    echo -e "${BLAU}Muntant ${DISC_NOM[$idx]}...${NC}"
    udisksctl mount -b "${DISC_NOM[$idx]}" >/dev/null 2>&1
    mp=$(lsblk -ndo MOUNTPOINT "${DISC_NOM[$idx]}" 2>/dev/null | head -n 1)

    if [ -n "$mp" ]; then
        DISC_MUNTATGE[$idx]="$mp"
        DISC_MUNTAT[$idx]="si"
        echo -e "${VERD}✓ Muntat a: $mp${NC}"
        return 0
    else
        echo -e "${VERMELL}No s'ha pogut muntar ${DISC_NOM[$idx]}.${NC}"
        echo "Monta'l des del gestor de fitxers i torna-ho a provar."
        return 1
    fi
}

# mostra_discos: llistat numerat d'unitats + estat de muntatge.
mostra_discos() {
    local i estat
    if [ "$NUM_DISCS" -eq 0 ]; then
        echo -e "  ${VERMELL}(cap)${NC} No s'ha detectat cap USB ni disc extern/intern."
    else
        for i in $(seq 1 "$NUM_DISCS"); do
            if [ "${DISC_MUNTAT[$i]}" == "si" ]; then
                estat="${VERD}muntat a ${DISC_MUNTATGE[$i]}${NC}"
            else
                estat="${GROC}no muntat (es muntarà en triar-lo)${NC}"
            fi
            echo -e "  ${VERD}$i${NC}) ${DISC_ETIQUETA[$i]} ${BLAU}[${DISC_NOM[$i]}, ${DISC_MIDA[$i]}]${NC} - $estat"
        done
    fi
}

# rsync_compat <dispositiu>: adapta les opcions de rsync al sistema de fitxers:
#  - ext4/btrfs/xfs: hardlinks (-H) I permisos/propietaris (clau per a ostree).
#  - ntfs: hardlinks sí, sense permisos Linux.
#  - exfat/vfat: ni hardlinks ni permisos.
rsync_compat() {
    local fst
    fst=$(lsblk -ndo FSTYPE "$1" 2>/dev/null | head -n 1)
    case "$fst" in
        ext2|ext3|ext4|btrfs|xfs) echo " -H" ;;
        ntfs)                     echo " -H --no-perms --no-owner --no-group" ;;
        *)                        echo " --no-perms --no-owner --no-group" ;;
    esac
}

# ajusta_rsync <ruta_desti>: determina el dispositiu de destí i afegeix els
# flags adequats a RSYNC_OPTS.
ajusta_rsync() {
    local ruta="$1" i disc_desti=""
    for i in $(seq 1 "$NUM_DISCS"); do
        case "$ruta" in
            "${DISC_MUNTATGE[$i]}"*) disc_desti="${DISC_NOM[$i]}"; break ;;
        esac
    done
    RSYNC_OPTS="${RSYNC_OPTS}$(rsync_compat "$disc_desti")"
}

# ==========================================
# 3. MENÚ PRINCIPAL
# ==========================================
echo -e "${VERD}========================================${NC}"
echo -e "${VERD}   BACKUP_MUT - BACKUP I RESTAURACIÓ    ${NC}"
echo -e "${VERD}========================================${NC}"
echo ""
echo "1) Fer còpia de seguretat (backup)"
echo "2) Restaurar còpia de seguretat"
echo "3) Sortir"
echo ""

read -p "Tria una opció [1-3]: " opcio

# ==========================================
# 4. LÒGICA DE DECISIÓ (CASE)
# ==========================================
case $opcio in
    1) # --- OPCIÓ 1: FER BACKUP ---
        echo ""
        echo -e "${GROC}--- MODE BACKUP ---${NC}"

        detecta_discos
        echo ""
        echo -e "${BLAU}Unitats disponibles on guardar el backup:${NC}"
        mostra_discos
        echo ""

        # Arbre visual de tots els discs i particions del sistema
        DISC_SYS=$(disc_sistema)
        echo -e "${BLAU}🗺️  Mapa de discs del sistema (el disc '${DISC_SYS}' és el del Deepin i queda exclòs):${NC}"
        lsblk -o NAME,SIZE,TYPE,PKNAME,LABEL,MOUNTPOINT
        echo ""

        if [ "$NUM_DISCS" -eq 0 ]; then
            echo -e "${GROC}PKNAME és el disc físic 'pare'. Si tots els volums tenen el${NC}"
            echo -e "${GROC}mateix PKNAME que el sistema, són particions del mateix disc${NC}"
            echo -e "${GROC}físic i queden excloses per seguretat.${NC}"
            echo ""
        fi

        echo ""
        echo "Tria el directori ORIGEN:"
        echo -e "  ${VERD}A${NC}) /home/Miquel (tot el directori d'usuari)"
        echo -e "  ${VERD}B${NC}) /home/Miquel/Documents"
        echo -e "  ${VERD}C${NC}) /home/Miquel/Pictures"
        echo -e "  ${VERD}D${NC}) /home/Miquel/Downloads"
        echo -e "  ${VERD}S${NC}) Sistema Deepin (sda5)"
        echo -e "  ${GROC}R${NC}) Especificar ruta manualment"
        echo ""
        read -p "Opció [A/B/C/D/S/R]: " opcio_dir

        case "$opcio_dir" in
            A|a)
                origen="/home/Miquel/"
                echo -e "${VERD}✓ Directori seleccionat: /home/Miquel${NC}"
                ;;
            B|b)
                origen="/home/Miquel/Documents/"
                echo -e "${VERD}✓ Directori seleccionat: /home/Miquel/Documents${NC}"
                ;;
            C|c)
                origen="/home/Miquel/Pictures/"
                echo -e "${VERD}✓ Directori seleccionat: /home/Miquel/Pictures${NC}"
                ;;
            D|d)
                origen="/home/Miquel/Downloads/"
                echo -e "${VERD}✓ Directori seleccionat: /home/Miquel/Downloads${NC}"
                ;;
            S|s)
                echo -e "${VERD}💾 BACKUP DEL SISTEMA DEEPIN (sda5)${NC}"
                echo ""

                ARREL=$(findmnt -n -o SOURCE / 2>/dev/null)
                if [ "$ARREL" != "/dev/sda5" ]; then
                    echo -e "${GROC}⚠  Atenció: La partició arrel actual és ${ARREL:-desconeguda}, no /dev/sda5.${NC}"
                    read -p "Vols fer el backup del sistema actual de totes maneres? (s/n): " confirma_sys
                    if [ "$confirma_sys" != "s" ] && [ "$confirma_sys" != "S" ]; then
                        echo "Operació cancel·lada."
                        exit 0
                    fi
                fi

                if [ "$NUM_DISCS" -eq 0 ]; then
                    echo -e "${VERMELL}Error: No s'ha trobat cap USB o disc connectat!${NC}"
                    echo "Connecta un USB i torna a intentar-ho."
                    exit 1
                elif [ "$NUM_DISCS" -eq 1 ]; then
                    if munta_disc 1; then
                        USB_PATH="${DISC_MUNTATGE[1]}/"
                        echo -e "${BLAU}Unitat detectada: ${USB_PATH}${NC}"
                    else
                        exit 1
                    fi
                else
                    echo "Tria la unitat on guardar el backup del sistema:"
                    mostra_discos
                    read -p "Opció [1-$NUM_DISCS]: " opcio_sys
                    if [[ "$opcio_sys" =~ ^[0-9]+$ ]] && [ "$opcio_sys" -ge 1 ] && [ "$opcio_sys" -le "$NUM_DISCS" ]; then
                        if munta_disc "$opcio_sys"; then
                            USB_PATH="${DISC_MUNTATGE[$opcio_sys]}/"
                        else
                            exit 1
                        fi
                    else
                        echo -e "${VERMELL}Opció no vàlida.${NC}"
                        exit 1
                    fi
                fi
                echo ""

                origen="/"
                # Carpeta FIXA: el backup del sistema s'actualitza incrementalment
                desti="${USB_PATH}deepin_system_backup"

                echo "Origen: $origen"
                echo "Destí:  $desti"
                echo ""

                mkdir -p "$desti"

                if [ "$EUID" -ne 0 ]; then
                    echo -e "${GROC}⚠  Per copiar fitxers del sistema es necessiten permisos d'administrador.${NC}"
                    echo -e "${BLAU}Introdueix la teva contrasenya quan se't demani.${NC}"
                    RSYNC_SYS="sudo rsync"
                else
                    RSYNC_SYS="rsync"
                fi

                ajusta_rsync "$desti"

                echo -e "${VERD}Iniciant còpia de seguretat del sistema...${NC}"
                echo -e "${GROC}Aquest procés pot trigar força temps...${NC}"
                $RSYNC_SYS $RSYNC_OPTS \
                    --exclude='/proc' \
                    --exclude='/sys' \
                    --exclude='/dev' \
                    --exclude='/run' \
                    --exclude='/tmp' \
                    --exclude='/mnt' \
                    --exclude='/media' \
                    --exclude='/lost+found' \
                    "$origen" "$desti/"

                echo -e "${BLAU}Guardant informació del backup...${NC}"
                if [ "$RSYNC_SYS" == "sudo rsync" ]; then ESCRIU="sudo tee"; else ESCRIU="tee"; fi
                echo "ORIGEN=$origen" | $ESCRIU "${desti}/backup_info" > /dev/null
                {
                    echo "DATA=$(date +%Y-%m-%d_%H:%M:%S)"
                    echo "TIPUS=deepin_system_backup"
                    echo "USB=${USB_PATH}"
                    echo "PARTICIO=${ARREL:-/dev/sda5}"
                } | $ESCRIU -a "${desti}/backup_info" > /dev/null

                echo -e "${VERD}✅ Backup del sistema Deepin completat!${NC}"
                echo "Metadades guardades a: ${desti}/backup_info"
                echo ""
                exit 0
                ;;
            *)
                read -p "Directori ORIGEN (ex: /home/Miquel/Pictures/Pict): " origen
                ;;
        esac

        # --- Selecció del DESTÍ (sempre a partir del llistat) ---
        if [ "$NUM_DISCS" -eq 0 ]; then
            echo -e "${VERMELL}Error: no hi ha cap unitat disponible on guardar el backup.${NC}"
            echo "Connecta un USB o disc extern i torna-ho a provar."
            exit 1
        elif [ "$NUM_DISCS" -eq 1 ]; then
            if munta_disc 1; then
                desti_base="${DISC_MUNTATGE[1]}/backup_deepin"
                echo -e "${VERD}✓ Destí seleccionat: $desti_base${NC}"
            else
                exit 1
            fi
        else
            echo ""
            read -p "Tria la unitat de DESTÍ del backup (mira el llistat de dalt): " opcio_desti
            if [[ "$opcio_desti" =~ ^[0-9]+$ ]] && [ "$opcio_desti" -ge 1 ] && [ "$opcio_desti" -le "$NUM_DISCS" ]; then
                if munta_disc "$opcio_desti"; then
                    desti_base="${DISC_MUNTATGE[$opcio_desti]}/backup_deepin"
                    echo -e "${VERD}✓ Destí seleccionat: $desti_base${NC}"
                else
                    exit 1
                fi
            else
                echo -e "${VERMELL}Opció no vàlida.${NC}"
                exit 1
            fi
        fi

        if [ ! -d "$origen" ]; then
            echo -e "${VERMELL}Error: El directori origen '$origen' no existeix.${NC}"
            exit 1
        fi

        nom_carpeta=$(basename "$origen")
        if [[ "$origen" == /home/$USER* ]]; then
            # Dades personals: una carpeta nova amb data a cada execució
            desti="${desti_base}/${nom_carpeta}_$(date +%Y%m%d_%H%M)"
        else
            # Sistema (Roota, etc.): carpeta fixa actualitzada incrementalment
            desti="${desti_base}/${nom_carpeta}"
        fi

        [[ "$origen" != */ ]] && origen="${origen}/"
        rsync_desti="${desti}/"

        # SEGURETAT: mai copiar "/" sense exclusions (usa l'opció S)
        if [ "$origen" == "/" ]; then
            echo -e "${VERMELL}Error: per copiar tot el sistema usa l'opció S.${NC}"
            exit 1
        fi
        # SEGURETAT: el destí mai pot ser dins de l'origen (recursió infinita)
        case "$desti" in
            "$origen"*)
                echo -e "${VERMELL}Error: el destí ('$desti') és dins de l'origen ('$origen').${NC}"
                echo "Això provocaria una còpia infinita. Operació cancel·lada."
                exit 1
                ;;
        esac

        echo ""
        echo -e "${BLAU}📋 Resum del backup:${NC}"
        echo -e "   Origen: ${VERD}$origen${NC}"
        echo -e "   Destí:  ${VERD}$rsync_desti${NC}"
        echo ""
        read -p "Vols continuar? (s/n): " confirma_backup

        if [ "$confirma_backup" != "s" ] && [ "$confirma_backup" != "S" ]; then
            echo -e "${GROC}⚠  Operació cancel·lada. No s'ha copiat res.${NC}"
            exit 0
        fi

        mkdir -p "$desti"

        echo ""
        echo -e "${VERD}Iniciant còpia de seguretat...${NC}"

        ajusta_rsync "$desti"

        if [ "$EUID" -ne 0 ] && [[ "$origen" != /home/$USER* ]]; then
            RSYNC_CMD="sudo rsync"
            echo -e "${GROC}⚠  L'origen conté fitxers de sistema: cal contrasenya d'administrador.${NC}"
        else
            RSYNC_CMD="rsync"
        fi

        $RSYNC_CMD $RSYNC_OPTS "$origen" "$rsync_desti"

        echo -e "${BLAU}Guardant informació del backup...${NC}"
        if [ "$RSYNC_CMD" == "sudo rsync" ]; then ESCRIU="sudo tee"; else ESCRIU="tee"; fi
        echo "ORIGEN=$origen" | $ESCRIU "${desti}/backup_info" > /dev/null
        echo "DATA=$(date +%Y-%m-%d_%H:%M:%S)" | $ESCRIU -a "${desti}/backup_info" > /dev/null
        echo -e "${VERD}✅ Metadades guardades a ${desti}/backup_info${NC}"
        ;;

    2) # --- OPCIÓ 2: RESTAURAR BACKUP ---
        echo ""
        echo -e "${GROC}--- MODE RESTAURACIÓ ---${NC}"

        detecta_discos
        echo ""
        echo -e "${BLAU}Unitats disponibles on cercar backups:${NC}"
        mostra_discos
        echo ""

        if [ "$NUM_DISCS" -eq 0 ]; then
            echo -e "${VERMELL}Error: no hi ha cap unitat on cercar backups.${NC}"
            echo "Connecta un USB o disc extern i torna-ho a provar."
            exit 1
        elif [ "$NUM_DISCS" -eq 1 ]; then
            if munta_disc 1; then
                USB_PATH="${DISC_MUNTATGE[1]}/"
                echo -e "${VERD}✓ Unitat seleccionada: ${USB_PATH}${NC}"
            else
                exit 1
            fi
        else
            read -p "Tria la unitat on cercar el backup (mira el llistat de dalt): " opcio_usb
            if [[ "$opcio_usb" =~ ^[0-9]+$ ]] && [ "$opcio_usb" -ge 1 ] && [ "$opcio_usb" -le "$NUM_DISCS" ]; then
                if munta_disc "$opcio_usb"; then
                    USB_PATH="${DISC_MUNTATGE[$opcio_usb]}/"
                    echo -e "${VERD}✓ Unitat seleccionada: ${USB_PATH}${NC}"
                else
                    exit 1
                fi
            else
                echo -e "${VERMELL}Opció no vàlida.${NC}"
                exit 1
            fi
        fi

        # Cerca els backups de veritat: carpetes que contenen "backup_info"
        echo -e "${BLAU}Cercant backups disponibles...${NC}"
        mapfile -t backups < <(find "$USB_PATH" -maxdepth 4 -type f -name "backup_info" 2>/dev/null | sort -r)

        if [ ${#backups[@]} -eq 0 ]; then
            echo -e "${VERMELL}No s'han trobat backups a ${USB_PATH}.${NC}"
            exit 1
        fi

        echo ""
        echo "Backups trobats:"
        for i in "${!backups[@]}"; do
            info="${backups[$i]}"
            carpeta=$(dirname "$info")
            nom_backup=$(basename "$carpeta")
            data_backup=$(grep "^DATA=" "$info" | cut -d'=' -f2-)
            origen_b=$(grep "^ORIGEN=" "$info" | cut -d'=' -f2-)
            echo -e "  ${VERD}$((i+1))${NC}) $nom_backup"
            echo -e "       Data: $data_backup | Origen: $origen_b"
        done
        echo ""

        if [ ${#backups[@]} -eq 1 ]; then
            idx=0
            echo -e "${VERD}✓ Backup trobat: $(basename "$(dirname "${backups[0]}")")${NC}"
        else
            read -p "Tria un backup per restaurar [1-${#backups[@]}]: " eleccio
            if [[ "$eleccio" =~ ^[0-9]+$ ]] && [ "$eleccio" -ge 1 ] && [ "$eleccio" -le "${#backups[@]}" ]; then
                idx=$((eleccio-1))
            else
                echo -e "${VERMELL}Opció no vàlida.${NC}"
                exit 1
            fi
        fi

        info="${backups[$idx]}"
        backup_seleccionat=$(dirname "$info")
        origen_original=$(grep "^ORIGEN=" "$info" | cut -d'=' -f2-)
        data_backup=$(grep "^DATA=" "$info" | cut -d'=' -f2-)

        echo ""
        echo -e "${BLAU}Backup seleccionat: ${VERD}$backup_seleccionat${NC}"
        echo ""
        echo -e "${BLAU}📋 Informació del backup:${NC}"
        echo -e "   Origen original: ${VERD}$origen_original${NC}"
        echo -e "   Data del backup: ${VERD}$data_backup${NC}"
        echo ""
        echo -e "${BLAU}🔄 Restauració automàtica:${NC}"
        echo -e "   Des de: ${VERD}$backup_seleccionat${NC}"
        echo -e "   Cap a:  ${VERD}$origen_original${NC}"
        echo ""

        read -p "Vols continuar? (s/n): " confirma

        if [ "$confirma" != "s" ] && [ "$confirma" != "S" ]; then
            echo "Operació cancel·lada."
            exit 0
        fi

        echo ""
        echo -e "${VERD}Iniciant restauració...${NC}"

        if [ "$EUID" -ne 0 ] && [[ "$origen_original" != /home/$USER* ]]; then
            RSYNC_CMD="sudo rsync"
            echo -e "${GROC}⚠  La restauració toca fitxers de sistema: cal contrasenya d'administrador.${NC}"
        else
            RSYNC_CMD="rsync"
        fi
        $RSYNC_CMD $RSYNC_OPTS --exclude='backup_info' "$backup_seleccionat/" "$origen_original"

        echo ""
        echo -e "${VERD}✅ Restauració completada!${NC}"
        ;;

    3) # --- OPCIÓ 3: SORTIR ---
        echo "Adéu!"
        exit 0
        ;;

    *) # --- OPCIÓ NO VÀLIDA ---
        echo -e "${VERMELL}Opció no vàlida.${NC}"
        exit 1
        ;;
esac

echo ""
echo -e "${VERD}✅ Operació finalitzada!${NC}"

versió:17-8-2026

es salva amb Visual Code al escriptori -> backup_mut.txt abans de moure’l al seu lloc defintiu: /usr/local/bin/backup_mut

sudo cp /home/Miquel/Desktop/backup_mut.txt /usr/local/bin/backup_mut

plugin tts-server veus

sudo cp /home/Miquel/Desktop/tts-server.sh /usr/local/tts-server.sh

i per pujar Grub del escriptori:

sudo cp /home/Miquel/Desktop/grub.txt  /etc/default/grub

i per pujar grub.config

sudo cp /home/Miquel/Desktop/grub_config.txt  /boot/grub/grub.cfg

I per esborrar directoris obsolets:

sudo rm -rf /media/Miquel/backup/backup_deepin


NOTA IMPORTANT

Per evitar interferencies amb l’arrancada es molt important eliminar el directory ROOT cuan es fa una restauració


GIMP 3.2.2 (PROGRAMA DE MANIPULACIÓ D’IMATGES GNU)

Per aconseguir una versió tan recent i de la nova branca 3.x (com la 3.2.2) a Deepin sense trencar les dependències del teu sistema, has de fer servir mètodes externs. Aquí tens les dues millors maneres de fer-ho:

Opció 1: Amb Flatpak (La més recomanada i neta)

Deepin s’integra molt bé amb Flatpak, i des del repositori de Flathub sempre tindràs l’última versió estable de GIMP 3.x disponible.

  1. Obre la Terminal a Deepin.
  2. Assegura’t de tenir Flatpak instal·lat i el repositori de Flathub afegit (copia i enganxa aquestes línies una per una, et demanarà la teva contrasenya a la primera)
sudo apt update
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
  1. :sudo apt update sudo apt install flatpak flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
  2. Ara, instal·la l’última versió de GIMP disponible:flatpak install flathub org.gimp.GIMP
  3. Nota: Si un cop instal·lat no et surt a la teva llista d’aplicacions del menú de Deepin, tanca la sessió i torna a entrar (o reinicia l’ordinador) perquè el llançador d’aplicacions s’actualitzi i el reconegui.

💡 Consell extra per a Deepin:
De vegades, la Deepin Store (la botiga d’aplicacions visual) ja té integració amb Flatpak. Pots buscar «GIMP» directament allà, però fixa’t bé que a la informació del paquet digui que prové de «Flathub» o que és la versió 3.x. Si no ho indica, probablement estàs instal·lant la versió antiga del sistema.

Quin dels dos mètodes prefereixes provar? Si et trobes amb algun error concret a la terminal o la botiga es queda «pensant», digues-m’ho i ho solucionem al moment!


AppServ (de windows)

Amb molt de gust! 😊 Et deixo el text preparat perquè el puguis copiar i enganxar directament a una entrada de WordPress. He procurat que tingui un format de documentació, com una guia de consulta.


Instal·lació d’un entorn de desenvolupament LAMP a Deepin 25

Després d’instal·lar Apache, PHP, MariaDB i phpMyAdmin a Deepin 25, és útil saber on es troba cada component del sistema.

A diferència de Windows (AppServ, XAMPP, WAMP…), a Linux cada servei es guarda en el directori estàndard del sistema.

Equivalència amb AppServ

ComponentAppServ (Windows)Deepin 25
Servidor Web (Apache)C:\AppServ\Apache24\/etc/apache2/
Carpeta Web (www)C:\AppServ\www\/var/www/html/
PHPC:\AppServ\php\/usr/bin/php + /etc/php/8.4/
MariaDBC:\AppServ\MySQL\/var/lib/mysql/
phpMyAdminC:\AppServ\www\phpMyAdmin\/usr/share/phpmyadmin/
Configuració phpMyAdmindins del programa/etc/phpmyadmin/

ls -lh /etc/php/8.4/apache2/php*.ini

Miquel@Miquel-PC:~$ ls -lh /etc/php/8.4/apache2/php*.ini
-rw-r–r– 1 root root 68K de jul. 21 20:15 /etc/php/8.4/apache2/php.ini
-rw-r–r– 1 root root 68K de jul. 22 12:01 /etc/php/8.4/apache2/php_saved.ini
Miquel@Miquel-PC:~$

modificar php.ini amb Vs


1. Apache

Configuració

/etc/apache2/

Conté principalment:

apache2.conf
ports.conf

sites-available/
sites-enabled/

mods-available/
mods-enabled/

conf-available/
conf-enabled/

És el directori principal de configuració del servidor web.


Carpeta Web (DocumentRoot)

/var/www/html/

És l’equivalent al directori www d’AppServ.

Per exemple:

/var/www/html/index.php

es pot obrir des del navegador amb:

http://127.0.0.1/

o bé

http://localhost/

2. PHP

Executable:

/usr/bin/php

Per comprovar-ne la versió:

php -v

o bé

which php

Configuració

/etc/php/8.4/

Conté:

apache2/
cli/
mods-available/

Fitxers principals:

Servidor Apache

/etc/php/8.4/apache2/php.ini

Terminal (CLI)

/etc/php/8.4/cli/php.ini

3. MariaDB

Les bases de dades es guarden a:

/var/lib/mysql/

Allà hi trobarem una carpeta per cada base de dades.

Per exemple:

information_schema/

mysql/

performance_schema/

phpmyadmin/

sys/

polidic/

4. phpMyAdmin

ACCÉS-> http://127.0.0.1/phpmyadmin/

Amb Firexox hi ha alguna dificultat amb la funció Importar i es millor posar la bd al escriptori i usar:

   mysql -u root -p beseit < ~/Desktop/beseit.sql

Programa:

/usr/share/phpmyadmin/

Configuració:

/etc/phpmyadmin/

5. Registres (Logs)

Els registres d’Apache es troben a:

/var/log/apache2/

Principalment:

access.log

error.log

Quan alguna cosa no funciona, aquest és el primer lloc on mirar.


6. Estat dels serveis

Comprovar Apache

sudo systemctl status apache2

Comprovar MariaDB

sudo systemctl status mariadb

Reiniciar Apache

sudo systemctl restart apache2

Reiniciar MariaDB

sudo systemctl restart mariadb

7. Estructura recomanada dels projectes

Per defecte Apache utilitza:

/var/www/html/

Una bona organització consisteix a crear un directori per cada projecte:

/var/www/

    html/

    polidic/

    wordpress/

    proves/

    api/

Exemple

/var/www/

├── html/
│     index.php
│
├── polidic/
│     index.php
│     css/
│     js/
│     includes/
│     BD_conexions/
│     0imatges_polidic/
│     diccionaris_default/
│
├── wordpress/
│
└── proves/

D’aquesta manera podem accedir als projectes mitjançant:

http://localhost/polidic/
http://localhost/wordpress/

8. Directoris més importants

DirectoriFunció
/etc/apache2/Configuració d’Apache
/var/www/html/Carpeta web principal
/usr/bin/phpExecutable PHP
/etc/php/8.4/Configuració de PHP
/var/lib/mysql/Bases de dades MariaDB
/usr/share/phpmyadmin/Programa phpMyAdmin
/etc/phpmyadmin/Configuració phpMyAdmin
/var/log/apache2/Registres d’Apache

Conclusions

Deepin (igual que Debian i Ubuntu) distribueix cada component del servidor en el seu directori corresponent. Això pot semblar menys intuïtiu que AppServ o XAMPP, però ofereix molts avantatges:

  • configuració més clara i modular;
  • actualitzacions independents de cada component;
  • més estabilitat i seguretat;
  • estructura estàndard compartida per la majoria de distribucions Linux.

Un cop coneguda aquesta organització, administrar un servidor LAMP resulta tan senzill com treballar amb AppServ a Windows, amb l’avantatge d’utilitzar l’estructura estàndard de Linux.


Espero que aquesta guia et sigui útil. Ha estat un plaer ajudar-te a deixar el teu Deepin preparat com a entorn de desenvolupament. Bon treball amb Polidic! 🚀


1. Apache

Configuració

/etc/apache2/

Conté:

apache2.conf
ports.conf

sites-available/
sites-enabled/

mods-available/
mods-enabled/

conf-available/
conf-enabled/

És probablement el directori que més tocaràs.


DocumentRoot (equivalent a www)

/var/www/html/

Aquí és on Apache serveix la web per defecte.

Per exemple:

/var/www/html/index.php

es veu a:

http://127.0.0.1/

2. PHP

Executable

/usr/bin/php

Comprovar:

which php

Configuració:

/etc/php/8.4/

Conté:

apache2/
cli/
mods-available/

El fitxer principal és:

/etc/php/8.4/apache2/php.ini

i pel terminal:

/etc/php/8.4/cli/php.ini

3. MariaDB

Les bases de dades estan a:

/var/lib/mysql/

Si hi entres veuràs alguna cosa semblant a:

information_schema/

mysql/

performance_schema/

sys/

nom_base_dades/

Cada base de dades és un directori.


4. phpMyAdmin

Programa

/usr/share/phpmyadmin/

Configuració

/etc/phpmyadmin/

5. Logs

Apache

/var/log/apache2/

Conté

access.log

error.log

Són molt útils quan alguna cosa falla.


6. Serveis

Comprovar Apache

sudo systemctl status apache2

MariaDB

sudo systemctl status mariadb

7. Els teus projectes

Ara mateix Apache utilitza

/var/www/html/

Però pots crear-ne tants com vulguis.

Per exemple:

/var/www/

    html/

    polidic/

    proves/

    api/

    wordpress/

i configurar un VirtualHost per a cadascun.


8. Si vols treballar com AppServ

Com que estàs acostumat a Windows, jo faria una estructura molt semblant:

/var/www/

    html/
        index.php

    polidic/
        index.php
        css/
        js/
        imatges/
        includes/

    wordpress/

    proves/

Això et resultarà molt familiar.


El meu suggeriment per al teu cas

Coneixent el projecte Polidic, jo el deixaria així:

/var/www/
│
├── html/
│
├── polidic/
│   ├── index.php
│   ├── css/
│   ├── js/
│   ├── BD_conexions/
│   ├── includes/
│   ├── 0imatges_polidic/
│   ├── diccionaris_default/
│   └── ...
│
└── wordpress/

D’aquesta manera podràs accedir-hi amb una URL com http://localhost/polidic/, molt semblant al que feies amb AppServ.

Quan vulguis, també et puc ajudar a configurar VirtualHosts perquè puguis obrir els teus projectes amb adreces encara més còmodes, per exemple:

  • http://polidic.local
  • http://wordpress.local

És una configuració molt pràctica per treballar en desenvolupament i és la que acostumen a fer servir molts desenvolupadors Linux.

Directament, no es pot instal·lar AppServ de manera nativa a Deepin (ni a cap altra distribució Linux moderna). Tot i que algunes fonts antigues esmenten un suport teòric per a Linux, els instal·ladors actuals d’AppServ són fitxers .exe dissenyats exclusivament per a l’entorn Windows [[44]].

No et preocupis, però: com que Deepin està basat en Debian, tens alternatives molt millors, més segures i totalment integrades per aconseguir exactament el mateix resultat (un servidor web amb Apache, PHP, base de dades i phpMyAdmin).

Aquí tens les millors opcions per al teu sistema:

1. Entorn LAMP natiu (Opció més recomanada)

És l’estàndard de la indústria en entorns Linux. En lloc d’un instal·lador de tercers, utilitzes els paquets oficials de Deepin, la qual cosa garanteix major estabilitat i actualitzacions de seguretat automàtiques. Obre la terminal i executa:

  1. Actualitza la llista de paquets:
   sudo apt update
  1. Instal·la el servidor web Apache:
   sudo apt install apache2

Per comprovar si Apache està instal·lat a Deepin i on es troba, executa aquestes comandes a la terminal:

1. Comprovar si Apache està instal·lat

apache2 -v

o

dpkg -l | grep apache2

Si està instal·lat, veuràs la versió. Si no, dirà que no es troba la ordre.

2. Comprovar si està en execució

sudo systemctl status apache2

Si està actiu, veuràs active (running) en verd.

3. On està instal·lat

Els fitxers principals es troben a:

  • Executable: /usr/sbin/apache2
  • Fitxers de configuració: /etc/apache2/
  • Carpeta web (document root): /var/www/html/
  • Logs: /var/log/apache2/

4. Veure la configuració del document root

grep -i "documentroot" /etc/apache2/sites-available/000-default.conf

Això et dirà on estan els fitxers web (normalment /var/www/html).

5. Comprovar si el port 80 està escoltant

sudo netstat -tlnp | grep :80

o

sudo ss -tlnp | grep :80

Resum ràpid: Executa apache2 -v per saber si està instal·lat i sudo systemctl status apache2 per saber si està funcionant. Si vols veure la pàgina per defecte, ves a http://localhost al navegador.

  1. Instal·la el servidor de base de dades (MariaDB, el substitut directe i compatible de MySQL a Debian/Deepin):
   sudo apt install mariadb-server
  1. Instal·la PHP i els mòduls necessaris per connectar amb la base de dades:
   sudo apt install php libapache2-mod-php php-mysql
  1. (Opcional) Instal·la phpMyAdmin per gestionar les bases de dades des del navegador:
   sudo apt install phpmyadmin

Nota: Durant la instal·lació, quan et pregunti, prem la barra espaiadora per seleccionar apache2 i després Enter. També et demanarà configurar una contrasenya per a l’administrador de la base de dades.

Un cop finalitzat, pots comprovar que tot funciona obrint el navegador i visitant http://localhost. Els teus fitxers web aniran a la carpeta /var/www/html/.

2. XAMPP per a Linux (Alternativa «tot en un»)

Si prefereixes una experiència més semblant a la d’AppServ (un sol paquet que instal·la tot de cop), XAMPP ofereix una versió oficial per a Linux. El pots descarregar des del lloc web d’Apache Friends i executar l’instal·lador .run des de la terminal. Tot i això, la comunitat de desenvolupament sol recomanar l’opció LAMP nativa, ja que XAMPP a vegades pot donar problemes de permisos o no rebre actualitzacions tan àgils com el gestor de paquets apt.

3. Docker (Per a entorns aïllats)

Com a estudiant de ciències de la computació, és molt probable que en el futur valoris tenir entorns aïllats. Pots fer servir Docker per desplegar un contenidor LAMP amb una sola ordre, sense instal·lar res directament al teu sistema operatiu Deepin, mantenint-lo net i sense conflictes entre projectes.

Resum: Descarta AppServ per a Linux. La instal·lació nativa de LAMP mitjançant la terminal de Deepin és el camí més ràpid, professional i lliure de problemes de permisos a llarg termini. Si necessites ajuda per configurar qualsevol d’aquests passos, no dubtis a dir-m’ho!


⭐ ⭐ Instruccions, comandes usades a Deepin

Alt P per a copiar la selecció a Deepin


EXECUTAR backup_mut DES DE L’ESCRIPTORI DE DEEPIN

1. Donar-li permisos d’execució (si és un script o un programa):

chmod +x /home/Miquel/Desktop/backup_mut

2. Executar l’arxiu:

/home/Miquel/Desktop/backup_mut

Editor nano

sudo nano /home/Miquel/Desktop/grub.cfg

Eliminar directori del USB «backup»

sudo rm -rf /media/Miquel/backup/deepin_system_backup-intel


Canviar l’etiqueta d’una partició activa (ext4)

  1. Desmuntar la partició: sudo umount /dev/sda6
  2. Canviar l’etiqueta: sudo e2label /dev/sda6 Roota1
  3. Tornar a muntar amb udisksctl: udisksctl mount -b /dev/sda6
  4. Verificar: lsblk -f

Trobar les unitats instal·lades a Deepin

Segueix aquests passos:

lsblk

Si prefereixes una llista més simple de carpetes, també pots provar:

ls -la /media/admin/

o

ls -la /run/media/admin/

2. Copiar la carpeta

Un cop sàpigues el nom exacte de la carpeta del Kingston (per exemple, diguem que es diu KINGSTON), la comanda per copiar la carpeta Miquel sencera, mantenint tots els permisos i dates originals, serà així:

sudo cp -a /media/admin/KINGSTON/backup_deepin/Miquel /home/

Pas final i definitiu: Corregir els permisos

Com que vam veure abans que la carpeta nova havia quedat amb propietari admin, ara hem de dir-li al sistema que aquesta carpeta li pertany realment a l’usuari Miquel. Si no ho fem, quan intentis entrar amb l’usuari Miquel, l’escriptori Deepin podria donar errors o no carregar bé.

Executa aquestes dues comandes, una darrere l’altra:

1. Donar la propietat a l’usuari i grup Miquel (de forma recursiva, a tot el que hi ha dins):

sudo chown -R Miquel:Miquel /home/Miquel

2. Assegurar que la carpeta principal tingui els permisos de seguretat correctes (només el propietari hi pot entrar):

sudo chmod 700 /home/Miquel

3. Comprovació final:

ls -la /home/

Un cop vegis això, ja ho tens! Pots tancar la sessió de l’admin i iniciar sessió amb l’usuari Miquel. Hauria de ser exactament com ho tenies abans, amb totes les teves configuracions, documents i el Firefox al seu lloc.

Fes aquests passos i confirma’m que la línia ja surt correcta. Estem a la recta final!




Llistat de 60 estris Comandes de Linux

15 Comandes per accedir a fitxers

  1. pwd: Mostrar la ubicació del directori on actualment estem ubicats.
  2. ls: Mostrar la llista de fitxers i directoris continguts dins un directori especificat.
  3. cd: Canviar-nos del directori actual a un altre.
  4. mkdir: Crear un nou directori.
  5. touch: Generar un nou fitxer o canviar-li la data d’accés/modificació a un altre.
  6. cp: Copiar fitxers o directoris.
  7. mv: Moure fitxers o directoris. I, fins a canviar-li el nom si calgués.
  8. rm: Eliminar fitxers o directoris. (sudo rm /etc/default/grubç)
  9. rmdir: Eliminar un únic directori, sempre que estigui buit.
  10. cat: Mostrar el contingut de qualsevol tipus de fitxer a la pantalla.
  11. head: Mostra les primeres línies d’un fitxer, especificant el nombre de línies a mostrar.
  12. tail: Mostra les darreres línies d’un fitxer, especificant el nombre de línies a mostrar.
  13. less: Cerca dins del contingut d’un fitxer de forma interactiva.
  14. more: Cerca dins del contingut d’un fitxer forma interactiva.
  15. grep: Buscar i visualitzar cadenes de caràcters en fitxers o en resultats d’ordres.

11 Comandes per administrar el Sistema Operatiu

  1. uname: Mostrar informació sobre el SO, incloent el Kernel carregat en aquell moment.
  2. df: Mostrar informació sobre el SA, les particions i l’ús de l’espai del disc actual.
  3. free: Mostrar informació variada sobre la utilització de la memòria del sistema operatiu gestionat.
  4. top: Mostrar els processos en execució, més informació sobre el CPU, la Memòria RAM i més.
  5. htop: Similar a l’ordre top, però amb una interfície visual CLI renovada, millorada i interactiva.
  6. ps: Mostrar els processos en execució al SO de forma detallada i no interactiva.
  7. kill: Ieliminar processos en execució, mitjançant el nombre de processos (PID) assignat.
  8. shutdown: Gestionar el SO per realitzar accions, com ara: Apagar-lo, Reiniciar-lo, i Aturar-lo.
  9. reboot: Una versió nova i millorada dl’ordre shutdown, amb més opcions disponibles.
  10. uptime: Visualitzar quant de temps ha estat funcionant el SO des de la darrera arrencada.
  11. last: Mostra una llista d’inicis de sessió (d’usuaris) recents al sistema operatiu.

10 Ordres per gestionar informació d’elements i dispositius de HW

  1. lsblk: Mostra informació sobre tots els dispositius demmagatzematge disponibles.
  2. fdisk: Gestionar (crea, elimina i modifica) particions sobre els dispositius disponibles.
  3. mount: Muntar (conecta) un sistema de fitxers sobre el directori d’un dispositiu existent.
  4. umount: Desmuntar (desconnecta) un sistema de fitxers gestionat amb l’ordre umount.
  5. hdparm: Administrar els paràmetres de maquinari dels dispositius de disc disponibles.
  6. lshw: Veure la informació del HW del SO, inclosa la informació sobre els dispositius actuals.
  7. lsusb: Veure informació específica sobre els dispositius USB actuals al SO.
  8. lspci: Mostrar informació específica sobre els dispositius PCI actuals al SO.
  9. lscpu: Mostrar informació específica sobre el CPU utilitzat al SO i la seva arquitectura.
  10. dmesg: Mostrar informació interna gestionada pel Kernel, incloent-hi l’associada al HW.

14 Comandes per gestionar la informació d’elements i processos de xarxa

  1. ip: Gestionar tota la informació associada a les interfícies de xarxa, en SO moderns.
  2. ifconfig: Gestionar tota la informació associada a les interfícies de xarxa a SO antics.
  3. iwconfig: Gestionar la informació associada a les interfícies sense fil d’un sistema operatiu.
  4. nmcli: Gestionar la informació de les interfícies de xarxa via NetworkManager.
  5. wpa_cli: Gestionar la informació de les interfícies de xarxa sense fils via WPASupplicant.
  6. ping: Verificar la connexió actual cap a altres amfitrions de la xarxa mitjançant el protocol ICMP.
  7. route: Gestionar la taula d’encaminament IP per establir rutes estàtiques cap a host i xarxes.
  8. traceroute: Inrutar paquets de dades dun sistema a un altre host a través duna xarxa.
  9. nslookup: Comprovar la informació de DNS sobre altres hosts, de manera interactiva.
  10. dig: Consulteu servidors de noms DNS per solucionar problemes de DNS.
  11. netstat: Veure la informació sobre les connexions de xarxa actualment actives al sistema, i més.
  12. iptables: Gestionar les taules de regles de filtratge de paquets IPv4 i IPv6 del nucli Linux.
  13. resolvctl: Gestionar noms de domini, adreces IPv4 /IPv6 i registres de recursos DNS.
  14. mii-tool: Gestionar l’estat de la unitat d’interfície independent de mitjans (MII) d’una interfície de xarxa per negociar automàticament la velocitat de lenllaç i la configuració dúplex.

10 Comandes per gestionar els processos en execució i la informació relacionada

  1. fg: Activar en un procés determinat la seva execució en primer pla (foreground).
  2. bg: Activar en un procés determinat la seva execució en segon pla (background).
  3. pstree: Mostrar la llista de processos en forma d’arbre mostrant les relacions entre ells.
  4. nice: Establir la prioritat dels processos en execució en un SO.
  5. renice: Canviar la prioritat dels processos, establertes amb l’ordre nice.
  6. nohup: Executar un procés en segon pla (background) sense veure’s afectat per la senyal HUP.
  7. disown: Dconnecteu els processos que s’executen en segon pla i el terminal que els executa.
  8. fork: Crear processos (fills) a partir de la duplicació de la trucada d’un altre procés (pare).
  9. pidfd_open: Facilitar la obtenció dun descriptor de fitxer que es refereixi a un procés.
  10. clone:Ggenerar processos (fills) d’una forma similar a la usada amb l’ordre fork, però amb la diferència que, aquestes trucades al sistema brinden un control més precís sobre el desitjat.

Fins aquí, els nostres 60 Comandes de Linux idonis per conèixer, aprendre i utilitzar per aquest any 2023. No obstant això, en cas de desitjar saber més sobre cadascun daquests, simplement sha de fer clic sobre el nom de cada ordre. I si no, per a aquests i altres més, es pot explorar directament la secció oficial a les Manpages de Debian GNU/Linux, la qual té diverses documentacions en diferents idiomes.

LlibreOffice writer linux

Modifica tema: Eines/opcions/opcions/llibre office/aspecte.

Eines → Opcions → LibreOffice → Aparença. Clica Afegeix més temes. (es un botonet extrany que hi ha a la dreta. Potser el tema s’ha de descarregar e instal·lar. Cerca Light Teal. Instal·la’l i reinicia LibreOffice.

Impresionat… supera al Word

Partició disc Linux per a backups amb ‘Respaldar y restaurar «

Partició Mida Contingut
sda2 16 MB Partició de sistema (EFI o similar)
sda3 346,4 GB Windows (muntat a /media/Miquel/Windows)
sda4 1,2 GB Partició de recuperació o OEM
sda5 🔵 129,3 GB Deepin (sistema operatiu principal)
sdb1 57,7 GB Disc USB/extern de backup

Tens tota la raó! Si sda3 està en NTFS, podria ser la partició de Windows o una partició de dades compartida. No la formategis fins que estiguem segurs del que hi ha.

Opció més segura: Crear una nova partició ext4 dins de l’espai de Linux

Pas 1: Identificar les particions actuals

Obre una terminal i executa:

sudo fdisk -l

o

lsblk -f

Això ens mostrarà totes les particions i quin sistema de fitxers té cadascuna.


Device         Start        End   Sectors   Size Type
/dev/sda1       2048     206847    204800   100M EFI System
/dev/sda2     206848     239615     32768    16M Microsoft reserved
/dev/sda3     239616  726601727 726362112 346,4G Microsoft basic data
/dev/sda4  997756928 1000214527   2457600   1,2G Windows recovery environment
/dev/sda5  726601728  997756927 271155200 129,3G Linux filesystem

Perfecte! Tenies tota la raó! Mira l’estructura del teu disc:

  • /dev/sda3 (346,4G) → WINDOWS ⚠️
  • /dev/sda5 (129,3G) → LINUX/DEEPIN

Si formateges sda3, esborraràs Windows!

De moment ho possaré a un USB abans de trobar de afegir una partició amb Live USB

Solucions segures:

Opció 1: Crear una partició nova dins de Linux (Recomanat)

Has de redimensionar sda5 (Linux) per crear espai per al backup:

  1. Necessitaràs un Live USB de Deepin/Ubuntu per modificar la partició arrel
  2. Redimensiona sda5: redueix-la uns 50-100 GB
  3. Crea una nova partició ext4 amb l’espai alliberat
  4. Format ext4 i l’etiquetes com «Backups»

Opció 2: Utilitzar un disc extern USB

Connecta un disc dur extern o USB amb prou espai i fes el backup allà.

Opció 3: Comprovar espai lliure a sda5

Executa això per veure quant espai lliure tens ja dins de Linux:

df -h /home

Si tens prou espai lliure dins de la teva partició de Linux, pots crear una carpeta específica per als backups allà mateix.

Quina opció prefereixes?


Pas 2: Redimensionar la partició de Linux

  1. Obre GParted (necessitaràs un Live USB si vols modificar la partició arrel mentre el sistema està en ús)
  2. Redimensiona la partició ext4 de Linux per alliberar espai (per exemple, 50-100 GB per als backups)
  3. Crea una nova partició ext4 en l’espai alliberat

Pas 3: Alternativament, utilitzar una partició existent

Si ja tens una partició ext4 amb espai lliure, simplement selecciona-la a l’eina de backup en lloc de sda3.


Abans de fer res, executa lsblk -f a la terminal i enganxa’m el resultat. Així podrem veure exactament quines particions tens i quina és la més segura per utilitzar.

Adequar Deepin a les meves necessitat

Un cop instalat deepin 25.1, el primer programa que instalem es Deepin 25.1

sudo apt update
sudo apt install firefox

El panell lateral (gestor de fitxers) mostra tots els recursos del Deepin.

1 afegir al panell lateral el equip synology (192.168.1.41)


es pot posat el teclat cat però segurament es necessitarà ajud : XULETA: Configurar el teclat a Deepin 25 Minimal (sense interfície gràfica)


Comprovar que ja el tenim a la plataforma de llan\ament


Activar WebDAV

Permisos WebDAV a carpetes compartides de Synology

Aquí tens els passos, però hi ha un detall important que pot ser la clau del problema:

️ Punt clau: WebDAV només funciona amb carpetes compartides

A Synology, WebDAV només exposa carpetes compartides (shared folders), no subcarpetes. Si BibliotecaCalibre és una subcarpeta dins de OneDriveS, no podràs accedir-hi directament via WebDAV.

Opció A: Connectar-te a la carpeta compartida i després navegar

  • Carpeta: /OneDriveS (sense /BibliotecaCalibre)
  • Un cop connectat, navega dins de Nemo fins a BibliotecaCalibre

Opció B: Crear una carpeta compartida nova

Si vols accedir directament, hauries de crear BibliotecaCalibre com a carpeta compartida independent al Synology.


Com verificar/activar permisos WebDAV:

1. Panel de Control → Carpeta compartida

  • Obre el Panel de Control al DSM
  • Vés a Carpeta compartida
  • Selecciona OneDriveS
  • Fes clic a Editar

2. Pestanya «Permisos»

  • Assegura’t que l’usuari urqtejmi té permís de Lectura/Escriptura (o com a mínim Lectura)

3. Pestanya «Aplicacions» (important!)

  • Dins d’Editar, busca la pestanya Aplicacions
  • Assegura’t que WebDAV Server està marcat/activat per a aquesta carpeta

4. Verificar permisos de l’usuari al WebDAV Server

  • Obre l’aplicació WebDAV Server
  • Vés a Configuració → Permisos
  • Assegura’t que urqtejmi té accés habilitat

Recomanació:

Prova primer l’Opció A (canviar la carpeta a /OneDriveS) i veure si connecta. Si funciona, després ja navegaràs dins de Nemo fins a BibliotecaCalibre. És la solució més ràpida. 🚀

Restaurar Miquel_copia per degeneració de Miquel

Ara ho entenc! El gestor de fitxers mostra noms «bonics» però els noms reals són:

  • «Carpeta de l’usuari» (🏠) = /home/Miquel (la teva carpeta home real)
  • «Miquel copia» = /home/Miquel copia
  • «Miquel_original» = /home/Miquel_original

⚠️ Important

No pots reanomenar /home/Miquel mentre estàs loguejat com a «Miquel», perquè el sistema l’està utilitzant.

Opcions:

Opció A: Copiar el contingut (més segura)

En lloc de canviar noms, copia el contingut de «Miquel copia» dins de «Miquel» sobreescrivint:

sudo cp -rn "/home/Miquel copia/." "/home/Miquel/"

La flag -r copia recursivament, -n no sobreescriu fitxers existents. Si vols sobreescriure tot, treu la -n:

sudo cp -r "/home/Miquel copia/." "/home/Miquel/"

Opció B: Canviar noms (requereix tancar sessió)

  1. Tanca la sessió completament
  2. A la pantalla de login, prem Ctrl + Alt + F3 per anar a una terminal
  3. Logueja’t i executa:
sudo mv /home/Miquel /home/Miquel_old
sudo mv "/home/Miquel copia" /home/Miquel
  1. Reinicia amb sudo reboot

Opció C: Fer-ho des d’un Live USB

Encara més segur, però més complex.

Quina opció prefereixes? Et recomano l’Opció A si només vols substituir el contingut.