[install wine] lib liodbc.so introuvable

Questions et astuces concernant l'installation et la configuration d'archlinux
iznobe
Daikyu
Messages : 57
Inscription : mer. 14 mai 2025, 21:16

Re: [install wine] lib liodbc.so introuvable

Message par iznobe »

Bonjour , il s' agit de $FALL .

le mieux etant de passer le script à la moulinette : https://www.shellcheck.net/

il parait qu ' utiliser " cd " dans un script est à proscrire .
Dernière modification par iznobe le ven. 20 juin 2025, 08:43, modifié 1 fois.
iznobe
Daikyu
Messages : 57
Inscription : mer. 14 mai 2025, 21:16

Re: [install wine] lib liodbc.so introuvable

Message par iznobe »

Bonjour , il s' agit de $FALL bien presente ( et en erreur ) à la ligne 334 .

le mieux étant de passer le script à la moulinette : https://www.shellcheck.net/

il parait qu ' utiliser " cd " dans un script est à proscrire .
Avatar de l’utilisateur
dmganges
Hankyu
Messages : 46
Inscription : ven. 04 nov. 2022, 03:22

Re: [install wine] lib liodbc.so introuvable

Message par dmganges »

Houlà un grand MERCI à tous les deux.
Je ne sais pas depuis quand c'est là, et ce matin au saut du lit je n'ai rien vu :oops:
Merci d'avoir insisté !
iznobe a écrit : il parait qu ' utiliser " cd " dans un script est à proscrire .
Non, heureusement qu'on peut, je fais çà depuis toujours... pas de pb pour l'instant !

Et merci pour le lien, je ne connaissais pas, on n’arrête pas le progrès :D
On voit que j'ai fait le script en plusieurs étapes et à coup de copier/coller...

Il a besoin d'un bon coup de jeune :D
darkcyb081
Hankyu
Messages : 18
Inscription : dim. 03 mars 2019, 13:01

Re: [install wine] lib liodbc.so introuvable

Message par darkcyb081 »

essayer celui je vous ai envoyer vous me direz
:marche: -->Arch i3 | LVM | zsh | ryzen 9 3900x <--
Avatar de l’utilisateur
dmganges
Hankyu
Messages : 46
Inscription : ven. 04 nov. 2022, 03:22

Re: [install wine] lib liodbc.so introuvable

Message par dmganges »

OK, darkcyb081,
Comme il n'y avait pas l'origine, que j'aime bien laisser... :

Code : Tout sélectionner

#! /usr/bin/env bash
#
# sysrescue-customize - customize an existing SystemRescue iso image
# 
# Author: Gerd v. Egidy
# SPDX-License-Identifier: GPL-3.0-or-later
#
# see https://www.system-rescue.org/scripts/sysrescue-customize/ for details
J'ai pensé que c'était quelque chose que j'avais laissé traîner il y a longtemps sur le net...

Je regarde demain matin à la fraîche :D
darkcyb081
Hankyu
Messages : 18
Inscription : dim. 03 mars 2019, 13:01

Re: [install wine] lib liodbc.so introuvable

Message par darkcyb081 »

Toujours l'erreur ligne 1

Code : Tout sélectionner

#! /usr/bin/env bash
en

Code : Tout sélectionner

#!/usr/bin/env bash
Sachez qu'il y avait eu des faille de securité sur #! /usr/bin/env bash il est préférable d'utiliser

Code : Tout sélectionner

#!/bin/bash
:marche: -->Arch i3 | LVM | zsh | ryzen 9 3900x <--
Avatar de l’utilisateur
papajoke
Elfe
Messages : 817
Inscription : sam. 30 août 2014, 19:54

Re: [install wine] lib liodbc.so introuvable

Message par papajoke »

dmganges a écrit : ven. 20 juin 2025, 09:30
iznobe a écrit :il parait qu ' utiliser " cd " dans un script est à proscrire .
Non, heureusement qu'on peut, je fais çà depuis toujours... pas de pb pour l'instant !
En fait c'est déconseillé, on préfère utiliser des chemins absolus à la place de chemins relatifs.
D'ailleurs, tu le fais de temps en temps :

Code : Tout sélectionner

rm -r ${DIR_BASE}/squashfs-root/opt/firefox-esr
cp -R /opt/firefox-esr/ ${DIR_BASE}/squashfs-root/opt/

Code : Tout sélectionner

cd /root/MK_Rescue/sysresccd/RECIPE_00-TOUT/iso_add/root/.config
rm -r strawberry
cd /root/MK_Rescue/sysresccd/RECIPE_00-TOUT/iso_add/root/.local/share
rm -r strawberry
utile ? :roll:

------------

Note
Au début tu fais un alias echo='echo -e' il fonctionne ? si oui pourquoi faire 300 echo -e dans le code. Si ne fonctionne pas, alors virer cet alias.


---------

Déjà dit dans ton sujet précédent :roll:
Pacman accepte plusieurs paquets en paramètre !! voir code bien compliqué pour rien :

Code : Tout sélectionner

		pacman --noconfirm -Sy vlc >> MK_sysrescue.log 2>&1
		pacman --noconfirm -Sy audacity >> MK_sysrescue.log 2>&1
		pacman --noconfirm -Sy strawberry >> MK_sysrescue.log 2>&1
		pacman --noconfirm -Sy python-pip >> MK_sysrescue.log 2>&1
Dernière modification par papajoke le ven. 20 juin 2025, 14:29, modifié 1 fois.
Arch stable - Kde 6 / fish - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Avatar de l’utilisateur
dmganges
Hankyu
Messages : 46
Inscription : ven. 04 nov. 2022, 03:22

Re: [install wine] lib liodbc.so introuvable

Message par dmganges »

darkcyb081 ton module :

Code : Tout sélectionner

#!/bin/bash

# sysrescue-customize - customize an existing SystemRescue iso image
# Auteur : darkcyb081
# Libre de droit

# Contrôle de la version du bash
if [ -n "$POSIXLY_CORRECT" ] || [ -z "$BASH_VERSION" ]; then
    echo "ERROR: bash >= 4.0 is required for this script."
    exit 1
fi

if (( BASH_VERSINFO[0]*100 + BASH_VERSINFO[1] < 400 )); then
    echo "ERROR: bash >= 4.0 is required for this script."
    exit 1
fi

# Configuration des couleurs
declare -g DR='\033[1;91m'
declare -g DV='\033[1;92m'
declare -g DB='\033[1;94m'
declare -g FA='\033[0m'

print_usage() {
    echo "Usages :"
    echo "MK_sysrescue TOUT"
    echo "MK_sysrescue READ"
    echo "MK_sysrescue RECI"
    echo "MK_sysrescue WRITE"
    echo "MK_sysrescue HELP"
    echo ""
}

print_help() {
    echo "                  MK_sysrescue customize un SystemRescue depuis l'ISO téléchargée sur :"
    echo "                     https://www.system-rescue.org/Download/"
    echo ""
    echo "Usages :"
    echo "MK_sysrescue      TOUT | READ | RECI | WRITE | HELP"
    echo ""
    echo "- Le mode TOUT    Part toujours de la version ISO téléchargée, génère une archive"
    echo "                     Avec TOUTES les modifications contenues dans RECIPE_00-TOUT"
    echo "                     Puis la pousse dans le répertoire de destination :"
    echo "                        DIR_CCD=/root/sda1/sysresccd/x86_64"
    echo ""
    echo "- le mode READ    Part également de la version ISO téléchargée."
    echo "                     Les mises à niveau de RECIPE_00-TOUT sont IGNOREES, on repart de ZERO"
    echo "                        RECIPE_04-READ ; RECIPE_05-RECI & RECIPE_06-WRITE sont vides au départ"
    echo "                        En vue d'effectuer des modifications à la main dans squashfs-root"
    echo ""
    echo "- le mode RECI    Permet de faire des modifications ponctuelles à la main sans perturber :"
    echo "                     - RECIPE_00-TOUT"
    echo ""
    echo "- le mode WRITE   Permet de tester des modifications manuelles faites dans squashfs-root :"
    echo "                       Puis la pousse dans le répertoire de destination :"
    echo "                          DIR_CCD=/root/sda1/sysresccd/x86_64"
    echo ""
    echo "- le mode HELP    Affiche ce menu"
    echo ""
    echo -e "${DR}"
    echo "	Les modes CHROOT, MAJFF, MAJTB, STRAWB ont été supprimés de ce script."
    echo -e "${FA}"
    echo ""
}

argument_error() {
    echo -e "${DR}"
    echo "$1"
    echo -e "${FA}"
    print_usage
    exit 2
}

# Variables globales
declare -g MODE=""
declare -g DIR_BASE="/root/MK_Rescue/sysresccd"
declare -g DIR_ISO="/root/MK_Rescue/sysresccd/I_ISO"
declare -g DIR_MNT="/root/MK_Rescue/sysresccd/MNT"
declare -g DIR_SFS="/root/MK_Rescue/sysresccd/SFS"
declare -g DIR_REC="/root/MK_Rescue/sysresccd/RECIPE"
declare -g DIR_CCD="/root/sda1/sysresccd/x86_64"

parse_args() {
    echo -e "${DB}"
    echo "Contrôle des arguments"
    echo -e "${FA}"

    [[ $# -eq 0 ]] && argument_error "Absence de l'argument (TOUT | READ | RECI | WRITE | HELP)"

    case "$1" in        
        TOUT)
            MODE="TOUT"
            ;;
        READ)
            MODE="READ"
            ;;
        RECI)
            MODE="RECI"
            ;;
        WRITE)
            MODE="WRITE"
            ;;
        HELP)
            print_help
            exit 0
            ;;
        *)
            argument_error "ERREUR l'argument -->$1<-- est inconnu"
            ;;
    esac
    
    [[ $# -gt 1 ]] && argument_error "Trop d'arguments"
    [[ -z "$MODE" ]] && argument_error "Variable MODE non initialisée"
}

read_iso() {
    echo -e "${DB}"
    echo "read_iso()"
    echo -e "${DV}"
    echo "===> Nettoyages ..."
    echo -e "${FA}"
    
    # Vérification des dépendances
    if ! command -v unsquashfs >/dev/null 2>&1; then
        echo -e "${DR}"
        echo "ERREUR: unsquashfs n'est pas installé (paquet squashfs-tools requis)"
        echo -e "${FA}"
        exit 1
    fi
    
    if ! command -v mksquashfs >/dev/null 2>&1; then
        echo -e "${DR}"
        echo "ERREUR: mksquashfs n'est pas installé (paquet squashfs-tools requis)"
        echo -e "${FA}"
        exit 1
    fi
    
    if ! command -v rsync >/dev/null 2>&1; then
        echo -e "${DR}"
        echo "ERREUR: rsync n'est pas installé"
        echo -e "${FA}"
        exit 1
    fi
    
    # Vérification de l'existence du fichier ISO
    if [[ ! -f "${DIR_ISO}/systemrescue.iso" ]]; then
        echo -e "${DR}"
        echo "ERREUR: Le fichier ISO ${DIR_ISO}/systemrescue.iso n'existe pas"
        echo -e "${FA}"
        exit 1
    fi
    
    # Création des répertoires nécessaires
    mkdir -p "${DIR_MNT}" "${DIR_BASE}"
    
    umount "${DIR_MNT}" 2>/dev/null || true
    rm -rf "${DIR_BASE}/squashfs-root" 2>/dev/null || true

    echo -e "${DV}"
    echo "===> Montage de ${DIR_ISO}/systemrescue.iso ..."
    echo -e "${FA}"
    
    if ! mount -o loop "${DIR_ISO}/systemrescue.iso" "${DIR_MNT}"; then
        echo -e "${DR}"
        echo "ERREUR: Impossible de monter l'ISO"
        echo -e "${FA}"
        exit 1
    fi
    
    cd "${DIR_BASE}" || exit 1
    
    echo -e "${DV}"
    echo "===> Extract en cours ..."
    echo -e "${FA}"
    
    if ! unsquashfs "${DIR_MNT}/sysresccd/x86_64/airootfs.sfs"; then
        echo -e "${DR}"
        echo "ERREUR: Impossible d'extraire le système de fichiers"
        echo -e "${FA}"
        umount "${DIR_MNT}" 2>/dev/null || true
        exit 1
    fi
}

run_recipe() {
    echo -e "${DB}"
    echo "run_recipe()"
    echo -e "${DV}" 
    echo "===> Suppression de fichiers..."
    echo -e "${FA}"
    
    local DELETE_ROOT="${DIR_REC}/iso_delfic"
    if [[ -d "${DELETE_ROOT}" ]]; then
        while IFS= read -r -d '' FILE; do
            echo "FICHIER SUPPRIME = ${DIR_BASE}/squashfs-root/${FILE}"
            rm -rf "${DIR_BASE}/squashfs-root/${FILE}"
        done < <(find "${DELETE_ROOT}" -type f -printf '%P\0' 2>/dev/null)
    fi

    echo -e "${DV}"
    echo "===> Suppression de répertoires vides..."
    echo -e "${FA}"
    
    local DELETE_ROOT="${DIR_REC}/iso_delrep"
    if [[ -d "${DELETE_ROOT}" ]]; then
        while IFS= read -r -d '' REP; do
            if [[ -d "${DIR_BASE}/squashfs-root/${REP}" ]]; then
                if [[ -z "$(ls -A "${DIR_BASE}/squashfs-root/${REP}" 2>/dev/null)" ]]; then
                    echo "${DIR_BASE}/squashfs-root/${REP} VIDE"
                    if rmdir "${DIR_BASE}/squashfs-root/${REP}" 2>/dev/null; then
                        echo "${DIR_BASE}/squashfs-root/${REP} SUPPRIME"
                    fi
                fi
            fi
        done < <(find "${DELETE_ROOT}" -type d -printf '%P\0' 2>/dev/null)
    fi

    echo -e "${DV}"
    echo "===> Ajout/remplacement de fichiers..."
    echo -e "${FA}"
    
    local ADD_ROOT="${DIR_REC}/iso_add"
    if [[ -d "${ADD_ROOT}" ]]; then
        rsync -a "${ADD_ROOT}/" "${DIR_BASE}/squashfs-root/"
    fi
}

write_iso() {
    echo -e "${DB}"
    echo "write_iso()"
    echo -e "${FA}"
    
    cd "${DIR_BASE}" || exit 1
    
    # Vérification de l'existence du répertoire squashfs-root
    if [[ ! -d "${DIR_BASE}/squashfs-root" ]]; then
        echo -e "${DR}"
        echo "ERREUR: Le répertoire squashfs-root n'existe pas"
        echo -e "${FA}"
        exit 1
    fi
    
    # Création du répertoire de destination
    mkdir -p "${DIR_CCD}"
    
    if ! mksquashfs "${DIR_BASE}/squashfs-root" airootfs.sfs -noappend -comp xz; then
        echo -e "${DR}"
        echo "ERREUR: Impossible de créer le fichier squashfs"
        echo -e "${FA}"
        exit 1
    fi
    
    echo -e "${DB}"
    echo "sha512sum()"
    echo -e "${FA}"
    sha512sum airootfs.sfs > airootfs.sha512
    
    echo -e "${DV}"
    echo "===> Copies dans ${DIR_CCD}"
    echo -e "${FA}"
    
    if ! cp airootfs.sfs airootfs.sha512 "${DIR_CCD}/"; then
        echo -e "${DR}"
        echo "ERREUR: Impossible de copier les fichiers vers ${DIR_CCD}"
        echo -e "${FA}"
        exit 1
    fi
    
    rm -f airootfs.sfs airootfs.sha512
}

# Fonction de nettoyage en cas d'interruption
cleanup() {
    echo -e "${DR}"
    echo "Nettoyage en cours..."
    echo -e "${FA}"
    umount "${DIR_MNT}" 2>/dev/null || true
    rm -f "${DIR_BASE}/airootfs.sfs" "${DIR_BASE}/airootfs.sha512" 2>/dev/null || true
}

# Trap pour nettoyer en cas d'interruption
trap cleanup EXIT INT TERM

#################
# Ça commence ici

parse_args "$@"

case "$MODE" in
    "TOUT")
        DIR_REC="/root/MK_Rescue/sysresccd/RECIPE_00-TOUT"
        read_iso
        run_recipe
        write_iso
        
        echo -e "${DB}"
        echo "TOUT est fini !"
        echo "Rebooter"
        echo -e "${FA}"
        echo ""
        ;;
        
    "READ")
        DIR_REC="/root/MK_Rescue/sysresccd/RECIPE_04-READ"
        read_iso
        
        echo -e "${DB}"
        echo "L'ISO est maintenant dans ${DIR_BASE}/squashfs-root !"
        echo "Faites vos modifications manuelles, puis passez à RECIPE_06-WRITE"
        echo -e "${FA}"
        echo ""
        ;;
        
    "RECI")
        DIR_REC="/root/MK_Rescue/sysresccd/RECIPE_05-RECI"
        run_recipe
        
        echo -e "${DB}"
        echo "Les modifs de RECI sont maintenant intégrées dans ${DIR_BASE}/squashfs-root !"
        echo "Passer à RECIPE_06-WRITE pour générer l'image"
        echo -e "${FA}"
        echo ""
        ;;
        
    "WRITE")
        DIR_REC="/root/MK_Rescue/sysresccd/RECIPE_06-WRITE"
        write_iso
        
        echo -e "${DB}"
        echo "C'est fini !"
        echo "Rebooter"
        echo -e "${FA}"
        echo ""
        ;;
esac
fonctionne parfaitement :

Code : Tout sélectionner

[1;94m
Contrôle des arguments
[0m
[1;94m
read_iso()
[1;92m
===> Nettoyages ...
[0m
[1;92m
===> Montage de /root/MK_Rescue/sysresccd/I_ISO/systemrescue.iso ...
[0m
[1;92m
===> Extract en cours ...
[0m
Parallel unsquashfs: Using 32 processors
80635 inodes (74522 blocks) to write


[=/                                                        ]   3882/155157   2%
[===-                                                      ]  10765/155157   6%
[=========\                                                ]  25735/155157  16%
[============|                                             ]  34493/155157  22%
[===================/                                      ]  53279/155157  34%
[===============================-                          ]  86359/155157  55%
[=================================================\        ] 135602/155157  87%
[=========================================================\] 155157/155157 100%

created 72029 files
created 8547 directories
created 6427 symlinks
created 0 devices
created 0 fifos
created 4 sockets
created 2175 hardlinks
[1;94m
run_recipe()
[1;92m
===> Suppression de fichiers...
[0m
FICHIER SUPPRIME = /root/MK_Rescue/sysresccd/squashfs-root/opt/firefox-esr/distribution/policies.json
[1;92m
===> Suppression de répertoires vides...
[0m
/root/MK_Rescue/sysresccd/squashfs-root/opt/firefox-esr/distribution VIDE
/root/MK_Rescue/sysresccd/squashfs-root/opt/firefox-esr/distribution SUPPRIME
[1;92m
===> Ajout/remplacement de fichiers...
[0m
[1;94m
write_iso()
[0m
Parallel mksquashfs: Using 32 processors
Creating 4.0 filesystem on airootfs.sfs, block size 131072.

[====/                                                       ]  7100/97500   7%
[=======-                                                    ] 12300/97500  12%
[===========\                                                ] 18700/97500  19%
[======================-                                     ] 37900/97500  38%
[===========================================================/] 97500/97500 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 131072
	compressed data, compressed metadata, compressed fragments,
	compressed xattrs, compressed ids
	duplicates are removed
Filesystem size 1282768.79 Kbytes (1252.70 Mbytes)
	36.70% of uncompressed filesystem size (3494894.18 Kbytes)
Inode table size 726334 bytes (709.31 Kbytes)
	22.57% of uncompressed inode table size (3217651 bytes)
Directory table size 866350 bytes (846.04 Kbytes)
	37.10% of uncompressed directory table size (2334982 bytes)
Xattr table size 130 bytes (0.13 Kbytes)
	40.62% of uncompressed xattr table size (320 bytes)
Number of duplicate files found 4368
Number of inodes 92892
Number of files 77268
Number of fragments 6561
Number of symbolic links 6433
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 4
Number of directories 9187
Number of hard-links 2175
Number of ids (unique uids + gids) 23
Number of uids 11
	root (0)
	daemon (2)
	openvpn (964)
	partimag (110)
	colord (970)
	uuidd (973)
	rpcuser (34)
	ntp (87)
	rpc (32)
	systemd-network (979)
	tss (974)
Number of gids 21
	root (0)
	daemon (2)
	named (40)
	network (90)
	partimag (110)
	polkitd (102)
	ftp (11)
	groups (983)
	locate (21)
	tty (5)
	dbus (81)
	utmp (997)
	games (50)
	colord (970)
	uuidd (973)
	rpcuser (34)
	rpc (32)
	systemd-network (979)
	tss (974)
	systemd-journal-remote (977)
	systemd-journal (982)
[1;94m
sha512sum()
[0m
[1;92m
===> Copies dans /root/sda1/sysresccd/x86_64
[0m
[1;94m
TOUT est fini !
Rebooter
[0m

[1;91m
Nettoyage en cours...
[0m
:D
Avatar de l’utilisateur
papajoke
Elfe
Messages : 817
Inscription : sam. 30 août 2014, 19:54

Re: [install wine] lib liodbc.so introuvable

Message par papajoke »

c'est les codes couleurs qui te gêne ?

tu ne peux pas faire des tests toi même dans un mini script ? pour trouver la syntaxe qui te va... (ou qui fonctionne :lol: )

Code : Tout sélectionner

declare -g DR='\033[1;91m'
declare -g DV='\033[1;92m'
declare -g DB='\033[1;94m'
declare -g FA='\033[0m'

echo -e ${DR}bonjour a toi $FA
echo  ---
echo -e "${DV}bonjour a toi${FA}"
echo -e ---
echo -e "$DB"bonjour a toi "$FA"
echo  ---
echo -e "${DV}bonjour a toi "${FA}
echo -e ---
echo -e "${DR}"bonjour a toi "${FA}"
echo  ---
Pour moi, faire tes 3 echo à chaque fois .... bof
(et on peut aussi créer une fonction ou 3)

EDIT
et si ce sont les retours à la ligne avant/après qui dérangent, exists \n :wink:
Dernière modification par papajoke le ven. 20 juin 2025, 16:32, modifié 1 fois.
Arch stable - Kde 6 / fish - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Avatar de l’utilisateur
dmganges
Hankyu
Messages : 46
Inscription : ven. 04 nov. 2022, 03:22

Re: [install wine] lib liodbc.so introuvable

Message par dmganges »

:) :D :lol:
Répondre