Compare commits
2 Commits
eaa46993a6
...
d93cd51037
Author | SHA1 | Date |
---|---|---|
|
d93cd51037 | |
|
4b4669e908 |
|
@ -6,44 +6,47 @@ de comandos para pruebas.
|
|||
Contiene las funciones de gestión de git, y la parte de línea de comandos permite ejecutarlas sin necesitar escribir un programa que use la librería.
|
||||
|
||||
|
||||
# Instalación de dependencias para python
|
||||
## Requisitos
|
||||
|
||||
La gitlib esta diseñada para funcionar dentro de un entorno opengnsys existente. Invoca algunos de los comandos de opengnsys internamente, y lee los parámetros pasados al kernel en el oglive.
|
||||
|
||||
Por lo tanto, no va a funcionar correctamente fuera de un entorno oglive.
|
||||
|
||||
## Instalación de dependencias para python
|
||||
|
||||
La conversion del código a Python 3 requiere actualmente los paquetes especificados en `requirements.txt`
|
||||
|
||||
Para instalar dependencias de python se usa el modulo venv (https://docs.python.org/3/library/venv.html) que instala todas las dependencias en un entorno independiente del sistema.
|
||||
|
||||
**Nota:** Ubuntu 24.04 tiene la mayoría de las dependencias necesarias como paquetes, pero no hay paquete de `blkid`, por lo cual es necesario usar pip y un virtualenv.
|
||||
|
||||
Ejecutar:
|
||||
|
||||
sudo apt install -y python3 libarchive-dev libblkid-dev pkg-config libacl1-dev
|
||||
python3 -m venv venvog
|
||||
. venvog/bin/activate
|
||||
python3 -m pip install --upgrade pip
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
|
||||
# Uso
|
||||
|
||||
|
||||
## Distribuciones antiguas (18.04)
|
||||
|
||||
sudo apt install -y python3 libarchive-dev libblkid-dev pkg-config libacl1-dev
|
||||
python3.8 -m venv venvog
|
||||
. venvog/bin/activate
|
||||
python3.8 -m pip install --upgrade pip
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
Ejecutar con:
|
||||
|
||||
./gitlib.py
|
||||
# . venvog/bin/activate
|
||||
# ./gitlib.py
|
||||
|
||||
En modo de linea de comando, hay ayuda que se puede ver con:
|
||||
|
||||
./gitlib.py --help
|
||||
|
||||
|
||||
Los comandos que comienzan por `--test` existen para hacer pruebas internas, y existen temporalmente para probar partes especificas del código. Es posible que necesiten condiciones especificas para funcionar, y van a eliminarse al completarse el desarrollo.
|
||||
**Nota:** Ejecutar como usuario `root`, ya que `sudo` borra los cambios a las variables de entorno realizadas por venv. El resultado probable es un error de falta de módulos de Python, o un fallo del programa por usar dependencias demasiado antiguas.
|
||||
|
||||
## Uso
|
||||
|
||||
**Nota:** Preferiblemente ejecutar como `root`, ya que `sudo` borra los cambios a las variables de entorno realizadas por venv. El resultado probable es un error de falta de módulos de Python, o un fallo del programa por usar dependencias demasiado antiguas.
|
||||
|
||||
# . venv/bin/activate
|
||||
# ./gitlib.py
|
||||
**Nota:** Los comandos que comienzan por `--test` existen para hacer pruebas internas, y existen temporalmente para probar partes especificas del código. Es posible que necesiten condiciones especificas para funcionar, y van a eliminarse al completarse el desarrollo.
|
||||
|
||||
|
||||
### Inicializar un repositorio:
|
||||
## Inicializar un repositorio:
|
||||
|
||||
./gitlib.py --init-repo-from /dev/sda2 --repo linux
|
||||
|
||||
|
@ -54,7 +57,7 @@ Esto inicializa el repositorio 'linux' con el contenido /mnt/sda2.
|
|||
|
||||
El repositorio de sube al ogrepository, que se obtiene del parámetro de arranque pasado al kernel.
|
||||
|
||||
### Clonar un repositorio:
|
||||
## Clonar un repositorio:
|
||||
|
||||
./gitlib.py --clone-repo-to /dev/sda2 --boot-device /dev/sda --repo linux
|
||||
|
||||
|
@ -76,8 +79,7 @@ Esto clona un repositorio del ogrepository. El destino es un dispositivo físico
|
|||
|
||||
Windows usa una estructura llamada BCD (https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/bcd-system-store-settings-for-uefi?view=windows-11) para almacenar la configuración de arranque.
|
||||
|
||||
La estructura puede variar dependiendo en que maquina se despliegue, por esto gitlib soporta almacenar internamente
|
||||
multiples versiones del BCD, y elegir el correspondiente a una maquina especifica.
|
||||
La estructura puede variar dependiendo en que maquina se despliegue, por esto gitlib soporta almacenar internamente multiples versiones del BCD, y elegir el correspondiente a una maquina especifica.
|
||||
|
||||
|
||||
|
||||
|
@ -93,9 +95,6 @@ Se puede generar documentación de Python con una utilidad como pdoc3 (hay multi
|
|||
|
||||
# Funcionamiento
|
||||
|
||||
## Requisitos
|
||||
|
||||
La gitlib esta diseñada para funcionar dentro de un entorno opengnsys existente. Invoca algunos de los comandos de opengnsys internamente, y lee los parámetros pasados al kernel en el oglive.
|
||||
|
||||
|
||||
## Metadatos
|
||||
|
|
|
@ -11,34 +11,6 @@ Para instalar dependencias de python se usa el modulo venv (https://docs.python.
|
|||
|
||||
sudo apt install python3-git python3-libarchive-c python3-termcolor bsdextrautils
|
||||
|
||||
## Distribuciones antiguas (< 24.04)
|
||||
|
||||
sudo apt install python3 python3-venv libarchive-dev
|
||||
python3 -m venv venvog
|
||||
. venvog/bin/activate
|
||||
python3 -m pip install --upgrade pip
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
## Distribuciones muy antiguas (18.04, no soportado)
|
||||
|
||||
**Nota:** En 18.04, `uname` solo se encuentra en `/bin`, lo que causa un error inocuo en el log durante la creación de los repositorios:
|
||||
|
||||
Failed checking if running in CYGWIN due to: FileNotFoundError(2, 'No such file or directory')
|
||||
|
||||
Se arregla con el symlink incluido en las instrucciones mas abajo.
|
||||
|
||||
|
||||
sudo apt install -y python3.8 python3.8-venv python3-venv libarchive-dev
|
||||
sudo ln -sf /bin/uname /usr/bin/
|
||||
python3.8 -m venv venvog
|
||||
. venvog/bin/activate
|
||||
python3.8 -m pip install --upgrade pip
|
||||
pip3 install -r requirements.txt
|
||||
|
||||
Ejecutar con:
|
||||
|
||||
python3.8 ./opengnsys_git_installer.py
|
||||
|
||||
|
||||
## Agregar clave de SSH si es necesario
|
||||
|
||||
|
@ -50,21 +22,21 @@ para agregarla.
|
|||
|
||||
# Ejecutar
|
||||
|
||||
**Nota:** Preferiblemente ejecutar como `root`, ya que `sudo` borra los cambios a las variables de entorno realizadas por venv. El resultado probable es un error de falta de módulos de Python, o un fallo del programa por usar dependencias demasiado antiguas.
|
||||
|
||||
# . venv/bin/activate
|
||||
# ./opengnsys_git_installer.py
|
||||
|
||||
Debe ejecutarse como `root`.
|
||||
|
||||
El instalador descarga e instala Forgejo, un interfaz web de Git. La configuración se genera automáticamente.
|
||||
|
||||
Forgejo gestiona los repositorios y el acceso por SSH, por lo cual debe quedarse siempre corriendo. Por defecto se instala en el puerto 3000.
|
||||
|
||||
El usuario por defecto es `opengnsys` con password `opengnsys`.
|
||||
El usuario por defecto es `oggit` con password `opengnsys`.
|
||||
|
||||
|
||||
|
||||
|
||||
# Documentación
|
||||
# Documentación de código fuente
|
||||
|
||||
Se puede generar documentación de Python con una utilidad como pdoc3 (hay multiples alternativas posibles):
|
||||
|
||||
|
|
Loading…
Reference in New Issue