You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

157 lines
5.1 KiB

---
weight: 4
title: "Varias versiones de FreeCAD aisladas (appimages)"
date: 2021-10-25T23:16:27+0200
draft: false
summary: "Como instalar varias versiones de FreeCAD aisladas (AppImages)"
categories:
- pildoras
tags:
- freecad
---
## Varias versiones de FreeCAD aisladas entre si
{{< admonition type=abstract title="Referencias" open=true >}}
- Estos scripts están basados en el script propuesto por el usuario _**Maxi**_ en el [Grupo de Telegram FreeCAD en Español](https://telegra.ph/Grupo-Telegram-de-FreeCAD-en-Espa%C3%B1ol-07-12)
{{< /admonition >}}
Con la instalación propuesta podemos tener instaladas varias versiones de FreeCAD, por ejemplo la *stable* la *nightly* y la *real thunder* con configuraciones y módulos independientes entre ellas.
Tenemos que crear un directorio para cada versión diferente que queramos instalar. Yo tengo todas en el directorio `~/apps/freecad`
El contenido de ese directorio tiene esta pinta:
```bash
tree freecad
freecad
├── fc019
│ ├── current -> FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage
│ ├── FreeCAD_0.19-24276-Linux-Conda_glibc2.12-x86_64.AppImage
│ ├── FreeCAD_0.19-24291-Linux-Conda_glibc2.12-x86_64.AppImage
│ ├── Mod
│ ├── system.cfg
│ ├── temp
│ └── user.cfg
├── fc020
│ ├── current -> FreeCAD_weekly-builds-26155-Linux-Conda_glibc2.12-x86_64.AppImage
│ ├── FreeCAD_weekly-builds-25943-Linux-Conda_glibc2.12-x86_64.AppImage
│ ├── FreeCAD_weekly-builds-26155-Linux-Conda_glibc2.12-x86_64.AppImage
│ ├── Mod
│ ├── system.cfg
│ ├── temp
│ └── user.cfg
└── fcrt
├── current -> FreeCAD-asm3-Stable-Conda-Py3-Qt5-20211015-glibc2.12-x86_64.AppImage
├── FreeCAD-asm3-Stable-Conda-Py3-Qt5-20210922-glibc2.12-x86_64.AppImage
├── FreeCAD-asm3-Stable-Conda-Py3-Qt5-20211015-glibc2.12-x86_64.AppImage
├── Mod
├── system.cfg
├── temp
└── user.cfg
```
En cada subdirectorio (`fc019`, `fc020` y `fcrt`):
- Creamos un directorio `Mod`
- Descargamos el fichero `appimage` correspondiente
- Creamos el enlace simbólico `current`
Los scripts para arrancar las versiones tienen este contenido:
```bash
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
# Uncomment next line for using dot as decimal separator
# export LC_NUMERIC=en_US.UTF-8
# Uncomment next line for having a comma instead of a dot in numeric pad (it's a global option)
setxkbmap -option kpdl:comma
export HOME=/home/salvari/apps/freecad/fc019
export FREECAD_USER_HOME=$HOME
~/current --user-cfg ~/user.cfg --system-cfg ~/system.cfg --module-path ~/Mod
# Set default keymap for numeric pad
setxkbmap -option ''
```
Establecen la variable `HOME` y `FREECAD_USER_HOME` al directorio de la versión particular.
{{< admonition type=note title=Notas open=true >}}
* En mis scripts originales sólo establecía la variable `HOME` pero las distintas versiones de FreeCAD seguían compartiendo el directorio de _add-ons_, al establecer la variable `FREECAD_USER_HOME` cada versión tiene sus _add-ons_ independientes.
* Todavía no tengo muy claro que se almacena en el `module-path`, pero queda establecido "por si acaso"
{{< /admonition >}}
### Actualizar la versión
- Descargamos el fichero `appimage` correspondiente a la nueva versión.
- Borramos el antiguo enlace simbólico `current`
- Creamos de nuevo el enlace apuntando a la nueva `appimage` (`ln -s <nuevaAppImage> current`)
No es necesario tocar los scripts que lanzan *FreeCAD*
### Un solo script para todo
{{< admonition type=abstract title="Referencias" open=true >}}
Este script se basa directamente en el script propuesto por _Maxi_ uno de los usuarios del [Grupo FreeCAD Español](https://t.me/FreeCAD_Es) en Telegram.
{{< /admonition >}}
Con sólo este script podemos lanzar todas las versiones:
```bash
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
# Menu
echo "##### #### ### ####"
echo "# # # # # #"
echo "# ## #### #### # # # # #"
echo "#### # # # # # # # ##### # #"
echo "# # #### #### # # # # #"
echo "# # # # # # # # #"
echo "# # #### #### ### # # ####"
echo " "
echo " *************************"
echo " Elegir versión de FreeCAD"
echo " *************************"
echo " (1) FreeCAD 0.19"
echo " (2) FreeCAD 0.20"
echo " (3) RT Stable"
echo " (4) RT Daily"
echo " *************************"
read opcion
case $opcion in
1)
FREECAD_DIR=/home/usuario/apps/freecad/fc019 ;; # Ruta al archivo AppImage
2)
FREECAD_DIR=/home/usuario/apps/freecad/fc020 ;;
3)
FREECAD_DIR=/home/usuario/apps/freecad/fcrt ;;
4)
FREECAD_DIR=/home/usuario/apps/freecad/fcrtd ;;
*)
echo "Invalid Option"
exit ;;
esac
export HOME=$FREECAD_DIR
export FREECAD_USER_HOME=$FREECAD_DIR
~/current --user-cfg ~/user.cfg --system-cfg ~/system.cfg --module-path ~/Mod
# Set default keymap for numeric pad
setxkbmap -option ''
```