Pour forcer l’installation d’un environnement virtuel, j’ai utilisé la proposition de “cppm” ici :
https://www.diacamma.org/forum/t/probleme-suite-mise-a-niveau-debian#5600
Mais en modifiant la ligne 152 et la ligne 179 (Notepad++) parce que même dans cette proposition l’installation bloquait avec UBUNTU 24.04 sur le terminal avec la ligne :
[color=red]“----Refresh shortcut----”[/color]
sans voir le fameux :
[color=red]“=========END==========”[/color]
preuve que l’installation s’est bien faite jusqu’au bout de “install.sh”
Je vous donne mon “install.sh” qui fonctionne bien avec UBUNTU 24.04 Lts (le tout dernier):
[code]#!/usr/bin/env bash
if [ “$(id -u)” != “0” ]; then
echo “>>> This script must be run as ‘super user’ <<<” 1>&2
[ -z “$(which sudo)” ] && exit 1
sudo -E -H $0 $@
exit $!
fi
PACKAGES=“lucterios lucterios-standard lucterios-contacts lucterios-documents diacamma-asso diacamma-syndic diacamma-financial”
APP_NAME=“Diacamma”
function usage
{
echo “${0##/}: installation for Diacamma"
echo " ${0##/} -h”
echo " ${0##*/} [-p ] [-n <application_name>]"
echo “option:”
echo " -h: show this help"
echo " -p: define the packages list to install (default: ‘$PACKAGES’)"
echo " -n: define the application name for shortcut (default: ‘$APP_NAME’)"
exit 0
}
function finish_error
{
msg=$1
echo “!!!”>&2
echo " Error: $msg">&2
echo “!!!”>&2
exit 1
}
while getopts “i:p:n:h” opt ; do
case $opt in
p) PACKAGES=“$OPTARG”
;;
n) APP_NAME=“$OPTARG”
;;
h) usage $0
exit 0
;;
?) finish_error “Unrecognized parameter -$OPTARG”
;;
finish_error “Option -$OPTARG requires an argument.”
;;
esac
done
PIP_OPTION=“”
if [ ! -z “$http_proxy” ]
then
PIP_OPTION=“$PIP_OPTION --proxy=$http_proxy”
fi
echo “====== install Diacamma #24102811 ======”
echo “install: packages=$PACKAGES application_name=$APP_NAME”
echo
echo “------ check perquisite -------”
echo
if [ ! -z “$(which apt-get 2>/dev/null)” ]; then # DEB linux like
apt-get install -y libxml2-dev libxslt-dev libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev
apt-get install -y python3-pip python3-dev
apt-get install -y python3-tk ‘python3-imaging|python3-pil’
apt-get install -y pipx python3-dev default-libmysqlclient-dev build-essential pkg-config
#apt-get install -y libxcb-cursor-dev
#apt-get install -y python3-venv | echo ‘no venv’
else if [ ! -z “$(which dnf 2>/dev/null)” ]; then # RPM unix/linux like
dnf install -y libxml2-devel libxslt-devel libjpeg-devel gcc
dnf install -y libfreetype6 libfreetype6-devel
dnf install -y python3-devel python3-imaging python3-tkinter
else if [ ! -z “$(which yum 2>/dev/null)” ]; then # RPM unix/linux like
yum install -y epel-release
yum install -y libxml2-devel libxslt-devel libjpeg-devel gcc
yum install -y python38-devel python38-imaging python38-tkinter python38-setuptools
easy_install-3.8 pip
else
echo “++++++ Unix/Linux distribution not available for this script! +++++++”
fi; fi; fi
echo
echo “------ configure virtual environment ------”
echo
LUCTERIOS_PATH=“/var/lucterios2”
[ -z “$(which “pip3”)” ] && echo “No pip3 found!” && exit 1
py_version=$(python3 --version | egrep -o ‘([0-9]+.[0-9]+)’)
bon c’est sale on abime la suite pour les autres versions …
if [ “$py_version” != “3.7” -a “$py_version” != “3.8” -a “$py_version” != “3.9” -a “$py_version” != “3.10” -a “$py_version” != “3.11” -a “$py_version” != “3.12” ]
then
finish_error “Not Python 3.7, 3.8, 3.9, 3.10 or 3.11 (but $py_version) !”
fi
PYTHON_CMD=“python3”
set -e
pipx au lieu de pip et pas virtualenv, pipx s’en occupe
#echo “$PYTHON_CMD -m pip install -U $PIP_OPTION pip==24.2 virtualenv”
#echo "$PYTHON_CMD -m pipx install $PIP_OPTION pip==23.1.* "
echo "$PYTHON_CMD -m pipx install $PIP_OPTION pip==24.2.* "
#$PYTHON_CMD -m pipx install $PIP_OPTION pip==23.1.*
$PYTHON_CMD -m pipx install $PIP_OPTION pip==24.2.*
#$PYTHON_CMD -m pip install -U $PIP_OPTION pip==24.2 | echo “** no install pip **”
#if [ -z “$($PYTHON_CMD -m venv -h)” ]
#then
$PYTHON_CMD -m pip install -U $PIP_OPTION virtualenv | echo “** no install virtualenv **”
#fi
mkdir -p $LUCTERIOS_PATH
cd $LUCTERIOS_PATH
echo “$PYTHON_CMD -m virtualenv virtual_for_lucterios”
sudo rm -rf virtual_for_lucterios
lasyntaxe a un peu changé
#$PYTHON_CMD -m virtualenv virtual_for_lucterios
$PYTHON_CMD -m venv virtual_for_lucterios
echo
echo “------ install Lucterios ------”
echo
. $LUCTERIOS_PATH/virtual_for_lucterios/bin/activate
pip install -U $PIP_OPTION pip
pip uninstall PIL
pip uninstall Pillow
pip install -U $PIP_OPTION $PACKAGES
[ -z “$(pip list 2>/dev/null | grep 'Django ')” ] && finish_error “Django not installed !”
[ -z “$(pip list 2>/dev/null | grep 'lucterios ')” ]&& finish_error “Lucterios not installed !”
lucterios_admin.py update || lucterios_admin.py refreshall || echo ‘–no update/refresh–’
[ -f “$LUCTERIOS_PATH/extra_url” ] || echo “# Pypi server” > “$LUCTERIOS_PATH/extra_url”
echo
echo “------ refresh shortcut ------”
echo
rm -rf $LUCTERIOS_PATH/launch_lucterios.sh
touch $LUCTERIOS_PATH/launch_lucterios.sh
echo “#!/usr/bin/env bash” >> $LUCTERIOS_PATH/launch_lucterios.sh
echo >> $LUCTERIOS_PATH/launch_lucterios.sh
echo “export LUCTERIOS_INSTALL=‘24102811’” >> $LUCTERIOS_PATH/launch_lucterios.sh
echo >> $LUCTERIOS_PATH/launch_lucterios.sh
echo “. $LUCTERIOS_PATH/virtual_for_lucterios/bin/activate” >> $LUCTERIOS_PATH/launch_lucterios.sh
echo “cd $LUCTERIOS_PATH/” >> $LUCTERIOS_PATH/launch_lucterios.sh
if [ -z “$LANG” -o “$LANG” == “C” ]
then
echo “export LANG=en_US.UTF-8” >> $LUCTERIOS_PATH/launch_lucterios.sh
fi
qt_version=$($PYTHON_CMD -c ‘from PyQt6.QtCore import QT_VERSION_STR;print(QT_VERSION_STR)’ 2>/dev/null)
cp $LUCTERIOS_PATH/launch_lucterios.sh $LUCTERIOS_PATH/launch_lucterios_qt.sh
echo “lucterios_qt.py” >> $LUCTERIOS_PATH/launch_lucterios_qt.sh
chmod +x $LUCTERIOS_PATH/launch_lucterios_qt.sh
cp $LUCTERIOS_PATH/launch_lucterios.sh $LUCTERIOS_PATH/launch_lucterios_gui.sh
echo “lucterios_gui.py” >> $LUCTERIOS_PATH/launch_lucterios_gui.sh
chmod +x $LUCTERIOS_PATH/launch_lucterios_gui.sh
echo ‘lucterios_admin.py $@’ >> $LUCTERIOS_PATH/launch_lucterios.sh
chmod +x $LUCTERIOS_PATH/launch_lucterios.sh
chmod -R ogu+w $LUCTERIOS_PATH
ln -sf $LUCTERIOS_PATH/launch_lucterios.sh /usr/local/bin/launch_lucterios
ln -sf $LUCTERIOS_PATH/launch_lucterios_gui.sh /usr/local/bin/launch_lucterios_gui
ln -sf $LUCTERIOS_PATH/launch_lucterios_qt.sh /usr/local/bin/launch_lucterios_qt
icon_path=$(find “$LUCTERIOS_PATH/virtual_for_lucterios” -name “$APP_NAME.png” | head -n 1)
if [ -d “/usr/share/applications” ]
then
LAUNCHER=“/usr/share/applications/lucterios.desktop”
echo “[Desktop Entry]” > $LAUNCHER
echo “Name=$APP_NAME” >> $LAUNCHER
echo “Comment=$APP_NAME installer” >> $LAUNCHER
if [ “${qt_version:0:2}” == “6.” ]
then
echo “Exec=$LUCTERIOS_PATH/launch_lucterios_qt.sh” >> $LAUNCHER
else
echo “Exec=$LUCTERIOS_PATH/launch_lucterios_gui.sh” >> $LAUNCHER
fi
echo “Icon=$icon_path” >> $LAUNCHER
echo “Terminal=false” >> $LAUNCHER
echo “Type=Application” >> $LAUNCHER
echo “Categories=Office” >> $LAUNCHER
fi
chmod -R ogu+rw “$LUCTERIOS_PATH”
echo “============ END =============”
exit 0[/code]
Vous copiez ce code en ouvrant votre fichier “install.sh” avec un bloc note par exemple (n’oubliez pas de cocher le bouton “executable comme un programme” si vou créez un nouveau fichier, en cliquant droit sur le fichier puis sur propriétés après l’avoir enregistré) et vous le collez à la place du code de votre “install.sh”
Après avoir désinstallé Diacamma avec le fichier “uninstall.sh”… ([color=red]il faut virer les traces de ce qui a été installé mais qui ne fonctionne pas, afin de bien réussir votre nouvelle installation[/color])
Vous ouvrez votre “Terminal” et vous entrez votre ligne de commande en super utilisateur (administrateur chez windows) avec la commande:
[color=green]sudo bash /bureau/install.sh[/color]
si votre fichier est sur le bureau, sinon /chemin d’accès où se situe votre fichier d’installation et pas de “/” en fin de commande, seuls les dossiers sont entourés de “/” ex: /home/documents/Diacamma/install.sh
Tout s’installe automatiquement et vous attendez (ça prends plusieurs minutes) que votre terminal affiche :
[color=green]=========END==========[/color]
avec le retour du curseur du Terminal comme au début ex: [color=black]root@root-System-Product-Name:~$[/color] C’est la preuve que votre installation est arrivée au bout avec succès !
(faites une copie de votre ancien fichier avant, afin de le sauvegarder ailleurs de votre install.sh habituel. Ainsi vous aurez loisir de revenir sur votre install.sh si jamais celui-ci vous crée problème)… Chez moi il fonctionne parfaitement ! Un merci à cppm pour le virtualenv qui s’installe bien.
Faites moi savoir si chez vous ça fonctionne aussi… Merci
Daniel