Translate

lunes, 7 de diciembre de 2020

Moodle with Coderunner plugin, Jobe Sandbox and HTTPs CentOS 6

Moodle with Coderunner plugin, Jobe Sandbox and HTTPs CentOS 6

First, follow install instructions from:

Be sure to enable jobesandbox in Coderunner plugin configuration.

Coderunner uses Jobe sandbox by default but the http protocol is hardwired in file  jobesandbox.php. To change to https, just modify file:

/var/www/moodle/web/question/type/coderunner/classes/jobesandbox.php

In :

$protocol = 'http://';

Change to:

$protocol = 'https://';


jueves, 3 de diciembre de 2020

Instalación de php 7.0 para Moodle 3.8 en CentOS 6

1. Instalamos el SCL (Software collection ):
sudo yum install centos-release-scl

2. Instalamos la colección:
sudo yum install rh-php70

En mi caso, esto además instaló:
rh-php70-php-cli.x86_64 0:7.0.27-2.el6                rh-php70-php-common.x86_64 0:7.0.27-2.el6          
  rh-php70-php-json.x86_64 0:7.0.27-2.el6               rh-php70-php-pear.noarch 1:1.10.1-3.el6            
  rh-php70-php-process.x86_64 0:7.0.27-2.el6            rh-php70-php-xml.x86_64 0:7.0.27-2.el6             
  rh-php70-php-zip.x86_64 0:7.0.27-2.el6                rh-php70-runtime.x86_64 0:2.3-1.el6     



3. Habilitamos script para que modifique las variables de ambiente y tome la nueva versión de php:

cd /etc/profile.d/
cat<<EOF_PHP70>rh-php70.sh
#!/bin/bash
source scl_source enable rh-php70

EOF_PHP70

4. Ejecutamos y verificamos versión:

. ./rh-php70.sh
  php --versionPHP 7.0.27 (cli) (built: Nov  6 2019 09:34:24) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

which php
/opt/rh/rh-php70/root/usr/bin/php



5. Instalación del módulo para PostgreSQL y PHP para Apache:
yum -y install rh-php70-php-pgsqlrh-php70 rh-php70-php rh-php70-php-gd rh-php70-php-mbstring

6. Activación de AWS con php70. Respaldamos módulo original:
mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php54.off

7. 

Referencias:
Instalación de SCL rh-php70
NextCloud - Instalación de php 7.0

[SOLVED] Correction of: CentOS 6.10 Centos 6 : YumRepo Error: All mirror URLs are not using ftp, http[s] or file.

 

 CentOS 6 is ending and after a yum update, if it gives the error:

# yum update
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Update Process
Loading mirror speeds from cached hostfile
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base
 

 You can fix it with:

echo "https://vault.centos.org/6.10/os/x86_64/"       >/var/cache/yum/x86_64/6/base/mirrorlist.txt
echo "https://vault.centos.org/6.10/extras/x86_64/"   >/var/cache/yum/x86_64/6/extras/mirrorlist.txt
echo "https://vault.centos.org/6.10/updates/x86_64/"  >/var/cache/yum/x86_64/6/updates/mirrorlist.txt

# These are optional ( if they are installed in your system):
if [ -f /var/cache/yum/x86_64/6/centos-sclo-rh/mirrorlist.txt ]; then
   echo "https://vault.centos.org/6.10/sclo/x86_64/rh/"  >/var/cache/yum/x86_64/6/centos-sclo-rh/mirrorlist.txt
fi
if [ -f  /var/cache/yum/x86_64/6/centos-sclo-sclo/mirrorlist.txt ]; then
  echo "https://vault.centos.org/6.10/sclo/x86_64/sclo/">/var/cache/yum/x86_64/6/centos-sclo-sclo/mirrorlist.txt
fi  

Voila!

References:

 https://www.linuxquestions.org/questions/centos-111/yumrepo-error-centos-5-9-a-4175604669/

miércoles, 11 de noviembre de 2020

Instalación de MathJax 2.7.9 para Moodle en CentOS 6

 El MathJax sirve como sustituto de Tex, pero por omisión no viene correctamente configurado ( al menos en la versión 3.2.9 de Moodle ) ya que se agregaron y modificaron los paths en la versión 3 de MathJax, por lo que puede que no funcione la configuración por omisión.

 

Se recomienda bajar el MathJax y accederlo localmente.

1. Bajar como root el MathJax 2.7.9 de:

https://github.com/mathjax/MathJax/releases

https://github.com/mathjax/MathJax/releases/tag/2.7.9

Por ejemplo:

https://github.com/mathjax/MathJax/archive/2.7.9.tar.gz 


cd /var/www/html

mkdir ajax

wget https://github.com/mathjax/MathJax/archive/2.7.9.tar.gz

tar xvfz MathJax-2.7.9.tar.gz

 

2. En Moodle en:

 Administration->Site administration->Plugins->Filters->MathJax :

Poner en :

MathJax URL:     https://<hostname>/ajax/MathJax-2.7.9/MathJax.js

TeX filter compatibility:  (Check ) 


En : Administration->Site administration->Plugins->Manage Filters


Verificar que esté activado MathJax y que tenga precedencia sobre Tex.

Verificar también que esté activo el filtro enel curso en:


Administration->Course administration-> Filters



Instalación de STACK plugin para Moodle en Centos 6

 Instalación de STACK plugin para Moodle en Centos 6

 Nota: Solo ha funcionado con Maxima versión 5.36.1 . No se logró hacer funcionar ni con versiones previas, ni con versiones posteriores.

Verificado en :

$ distro
Name: CentOS release 6.10 (Final)
Version: 6.10 (Final)
Codename: Final

 $ rpm -qv maxima maxima-gui maxima-runtime-sbcl sbcl wxmaxima php httpd postgresql
maxima-5.36.1-2.el6.x86_64
maxima-gui-5.36.1-2.el6.x86_64
maxima-runtime-sbcl-5.36.1-2.el6.x86_64
sbcl-1.0.38-3.el6.x86_64
package wxmaxima is not installed
php-5.6.40-22.el6.remi.x86_64
httpd-2.2.15-69.el6.centos.x86_64
postgresql-8.4.20-8.el6_9.x86_64



Configuración de Moodle:

Moodle 3.2.9 (Build: 20180517)

Configuración de STACK:

STACK
qtype_stack
4.2 for Moodle 3.0+

 

Platform type:                     ( Linux optimized)

Maxima version:                 default

20

CAS result caching:            Cache in the database

Maxima command:            /home/ext-root-fs/var/www/moodle/data/stack/maxima_opt_auto  -eval '(cl-user::run)'           

Maths filter:                       Moodle Tex filter

 

Ejecución optimizada de Maxima.

Después de ejecutar STACK Healthcheck, es necesario generar el ejecutable optimizado de maxima con el botón: 'Create Maxima image'

 

Reporte de funcionamiento ( STACK Healthcheck):


unix-optimised
OKYou have chosen the "default" version of Maxima, so no Maxima version checking is being done. Your raw connection is actually using version "5.36.1" (36.1). CAS returned data as expected. You have a live connection to the CAS.
OKCorrect and expected STACK-Maxima library version being used (2018073000).

CAS results are being cached in the database.

 

 Creación de RPMs de maxima:

http://rpms.remirepo.net/rpmphp/zoom.php?rpm=maxima

wget http://archive.fedoraproject.org/pub/archive/fedora/linux/updates/22/SRPMS/m/maxima-5.36.1-2.fc22.src.rpm

rpm -ivh  maxima-5.36.1-2.fc22.src.rpm

cd ~/rpmbuild/SPECS

rpmbuild -bb  maxima.spec

cd ../RPMS/x86_64/

sudo rpm -ivh maxima-5.36.1-2.el6.x86_64.rpm maxima-gui-5.36.1-2.el6.x86_64.rpm  maxima-runtime-sbcl-5.36.1-2.el6.x86_64.rpm


 

Referencias:

Instalación en CentOS

https://moodle.org/mod/forum/discuss.php?d=270956 

Instrucciones de instalación:

https://lab.anahuac.mx/moodle/question/type/stack/doc/doc.php/Installation/index.md

Optimización de ejecución de Maxima

https://lab.anahuac.mx/moodle/question/type/stack/doc/doc.php/CAS/Optimising_Maxima.md 

 

sábado, 15 de agosto de 2020

Instalación de Tkgate 2.2 en CentOS 8

 Instalación de Tkgate 2.2  en CentOS 8

 

  • Cerciórese de que tiene instalado el repositorio EPEL.
yum -y install epel-release

cd
cd Downloads
wget -c https://lab.anahuac.mx/rpms/tkgate/electronics-menu-1.0-24.el8.noarch.rpm
wget -c https://lab.anahuac.mx/rpms/tkgate/tkgate-2.2-1.el8.x86_64.rpm

 
Estos paquetes se construyeron a partir del código fuente de Fedora y de Bitbucket.org:

https://koji.fedoraproject.org/koji/buildinfo?buildID=1549948

Y de una versión más actualizada en:

https://bitbucket.org/starling13/tkgate/src/default/

 ( Esta liga ya no funciona )

  • Instalar los paquetes (como root). Por ejemplo:

 su -c "yum -y install electronics-menu-1.0-24.el8.noarch.rpm tkgate-2.2-1.el8.x86_64.rpm" 

 

El armado del RPM está basado en:

https://rpm-packaging-guide.github.io/

lunes, 9 de marzo de 2020

Instalación de Python 3.6 ( SCL ) en Centos 6 / Redhat 6

Versiones más recientes de software, por ejemplo Python 3.6, pueden instalarse en Centos 6.x empleando los SCL (Software collection).

El CentOS 6.10 trae por ejemplo el paquete python-2.6.6-68.el6_10.x86_64.
Pero si se requiere instalar una versión más reciente como la 3.6 se tendrían que actualizar un conjunto de directorios y bibliotecas que afectarían a la instalación original.

En vez de emplear un contenedor, es suficiente cambiar unas cuantas variables de ambiente para que estas apunten a otros nuevos directorios que contendrán las nuevas bibliotecas, códigos fuentes, etc. necesarios para que corran estas nuevas versiones de software y así no afecten a la configuración original de la instalación del sistema. Esto es lo que justamente se resuelve con el SCL.


 Instalación del SCL
1. Instalar los repositorios CentOS-SCLo-scl.repo y de  CentOS-SCLo-scl-rh.repo, mediante:
yum -y install centos-release-scl install centos-release-scl-rh

2. Instalar scl-utlis si aún no está instalado:
yum -y install scl-utils

3. Si es que ya existen, se pueden verificar qué versiones hay ya instaladas de SCL de Python:
scl -l | grep -i python

4. En mi caso, se instaló la rh-python36:
yum -y install rh-python36 rh-python36-runtime

En este caso, se puede ver que el paquete rh-python36 queda instalado en un directorio alternativo que está a partir de  /opt y que además se crea una nuevo árbol de directorios que contiene los archivos, bibliotecas, etc. necesarios para que corra dicha versión:

cd /opt/rh/rh-python36
ls
enable  root
ls root
bin   dev   lib    media  opt   root  selinux  sys  usr
boot  home  lib64  mnt    proc  sbin  srv      tmp


Algunos directorios están vacíos, pero los directorios como lib y lib64 contienen las bibliotecas correspondientes que son requeridas por el python36.


5. Conforme se fueron necesitando diferentes bibliotecas se instalaron los siguientes paquetes:

rh-python36-python-libs-3.6.9-2.el6.x86_64
rh-python36-2.0-1.el6.x86_64
rh-python36-python-virtualenv-15.1.0-2.el6.noarch
rh-python36-python-setuptools-36.5.0-1.el6.noarch
rh-python36-python-3.6.9-2.el6.x86_64
rh-python36-python-pip-9.0.1-2.el6.noarch
rh-python36-python-nose-1.3.7-3.el6.noarch
rh-python36-numpy-1.13.1-1.el6.x86_64
rh-python36-runtime-2.0-1.el6.x86_64
rh-python36-numpy-f2py-1.13.1-1.el6.x86_64
rh-python36-python-devel-3.6.9-2.el6.x86_64
rh-python36-python-tkinter-3.6.9-2.el6.x86_64
rh-python36-scipy-0.19.1-2.el6.x86_64


Por ejemplo: instalación de las bibliotecas necesarias para el ploteo:

yum -y install rh-python36-python-tkinter.x86_64

O si se desea instalar todos los paquetes mencionados:

yum -y install rh-python36-python-libs-3.6.9-2.el6.x86_64 rh-python36-2.0-1.el6.x86_64 rh-python36-python-virtualenv-15.1.0-2.el6.noarch rh-python36-python-setuptools-36.5.0-1.el6.noarch rh-python36-python-3.6.9-2.el6.x86_64 rh-python36-python-pip-9.0.1-2.el6.noarch rh-python36-python-nose-1.3.7-3.el6.noarch rh-python36-numpy-1.13.1-1.el6.x86_64 rh-python36-runtime-2.0-1.el6.x86_64 rh-python36-numpy-f2py-1.13.1-1.el6.x86_64 rh-python36-python-devel-3.6.9-2.el6.x86_64 rh-python36-python-tkinter-3.6.9-2.el6.x86_64 rh-python36-scipy-0.19.1-2.el6.x86_64

6. Algunos paquetes se tuvieron que instalar con el 'pip' ( ¿Package installer for Python ? ). Por ejemplo:

pip install scipy


Lista de paquetes que se necesitarion instalar por medio de pip:

pip list
cycler (0.10.0)
kiwisolver (1.1.0)
matplotlib (3.2.0)
nose (1.3.7)
numpy (1.18.1)
pandas (1.0.1)
pip (9.0.1)
pyparsing (2.4.6)
python-dateutil (2.8.1)
pytz (2019.3)
scipy (0.19.1)
setuptools (36.5.0)
six (1.14.0)
virtualenv (15.1.0)

7. Si se desean instalar todos los paquetes anteriores podemos poner:
pip install cycler kiwisolver matplotlib nose numpy pandas pip pyparsing python-dateutil pytz scipy setuptools six virtualenv

pip install sklearn sklearn-glvq sklearn-lvq sklearn-evaluation skippy scikit-learn

Nota para scikit-learn y sklearn: Es necesario que en el mismo directorio no exista un archivo que se llame queue.py , ya qua este produce errores de compilación en el sistema. Si existe, es necesario cambiarle de nombre o quitqalo de allí.

8. En ocasiones suele pedir que se actualice el pip. ejemplo:
pip install --upgrade pip

9. Una vez instalado el nuevo SCL y los paquetes necesarios de Python, para cambiarse de contexto de instalación (modificación de las variables de ambiente) y ejecutar un programa en este nuevo contexto, simplemente se le pone:

scl enable rh-python36 bash

Por ejemplo, en el caso del ambiente de desarrollo Geany, para que levante con el Python 3.6, se le pone:

/usr/bin/scl enable rh-python36 /usr/bin/geany

o si se desea siempre trabajar con dicho ambiente, se puede modificar el profile del usuario cambiando las variables con el comando:

source scl_source enable rh-python36

Esto es necesario ya que si se ejecuta el comando de scl enable rh-python36 bash en el profile, este indefinidamente, en forma recursiva, levantará shells en cuanto entre el usuario a su cuenta.


Algunas referencias:

sábado, 22 de febrero de 2020

Install Seamonkey on CentOS 8

1. Download the compiled tar file from:
https://www.seamonkey-project.org/

For example, download it from:

https://archive.mozilla.org/pub/seamonkey/releases/2.49.5/linux-x86_64/en-US/seamonkey-2.49.5.tar.bz2

2. As user root, move it to /usr/local and untar it:
sudo -i
mv seamonkey-2.49.5.tar.bz2 /usr/local
cd /usr/local
tar xvfj seamonkey-2.49.5.tar.bz2

3. Erase the tar file:
rm -f seamonkey-2.49.5.tar.bz2

4. Create the necessary links:
ln -s /usr/local/seamonkey/seamonkey /usr/local/bin/seamonkey 

(Optional):
ln -s /usr/local/seamonkey/chrome/icons/default/seamonkey.png /usr/share/icons/hicolor/128x128/apps/seamonkey.png

5. Test as normal user:
seamonkey &

6. Create a menu entry in the Applications menu for all the users:


cat<<EOF_DESKTOP>/usr/share/applications/seamonkey.desktop
[Desktop Entry]
Name=Seamonkey
GenericName=Web Browser
Comment=Lightly browse the Web
Exec=/usr/local/bin/seamonkey
Icon=seamonkey
Terminal=false
Type=Application
Categories=Network;WebBrowser;
Keywords=web;browser;internet;

EOF_DESKTOP


viernes, 21 de febrero de 2020

Instalación de wxmaxima en CentOS 8

1. Instalar maxima como se indica en :
Instalación de maxima y xmaxima en Centos 8

2. Instalar el paquete wxGTK3-devel
 sudo yum -y install wxGTK3-devel.x86_64

3. Bajar algún release del código fuente de wxmaxima, por ejemplo:
https://github.com/wxMaxima-developers/wxmaxima/archive/Version-20.02.1.tar.gz

4. Desempacar el archivo tar:
tar xvfz wxmaxima-Version-20.02.1.tar.gz 

5. Cambiarse al directorio creado, compilar el programa e instalarlo. Por ejemplo:

cd wxmaxima-Version-20.02.1/
mkdir -p build
cd build
cmake ..
cmake --build .
sudo cmake --build . -- install


6. Probar la instalación con:
wxmaxima

El icono de wxmaxima para el launcher lo deja ubicado en:

/usr/local/share/pixmaps/wxmaxima-32.xpm


Nota: Aparentemente se puede construir el RPM poniendo el siguiente comando, pero el paquete resultante entra en conflicto con otros instalados:


cmake --build . -- package


Instalación de maxima y xmaxima en Centos 8

1. Ir al sitio de maxima o de sourceforge y descargar las versiones disponibles de maxima. Por ejemplo:

https://sourceforge.net/projects/maxima/files/Maxima-Linux/5.43.0-Linux/

2. Descargar los archivos:
maxima-exec-gcl-5.43.0-1.x86_64.rpm
maxima-5.43.0-1.x86_64.rpm 
maxima-xmaxima-5.43.0-1.x86_64.rpm 

3. Instalar el gnuplot:
sudo yum -y install gnuplot

4. Instalar el ncurses-devel. Este paquete es para compilar el compat-readline que se necesita más adelante:

yum -y install ncurses-devel


5. Bajar el archivo compat-readline6-6.3-17.fc31.src.rpm . Este archivo provee la biblioteca libreadline.so.6()(64bit) .
Es necesario compilarlo y crear el RPM. El archivo se puede bajar de rpm.pbone.net:


wget  ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/linux/releases/31/Everything/source/tree/Packages/c/compat-readline6-6.3-17.fc31.src.rpm

6. Crear el RPM con:

Sino está instalado el paquete rpm-build, instalarlo:

sudo yum -y install rpm-build-4.14.2-36.el8.x86_64
rpm -ivh compat-readline6-6.3-17.fc31.src.rpm
cd ~/rpmbuild/SPECS
rpmbuild -bb compat-readline6.spec


Instalar el paquete crado con:
cd ~/rpmbuild/RPMS/x86_64/
sudo yum -y install ./compat-readline6-6.3-17.el8.x86_64.rpm
   
7. Instalar los paquetes de maxima con:
sudo yum -y install ./maxima-5.43.0-1.x86_64.rpm ./maxima-exec-gcl-5.43.0-1.x86_64.rpm ./maxima-xmaxima-5.43.0-1.x86_64.rpm

8. Probar maxima y xmaxima con:
 maxima

Maxima 5.43.0 http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.12
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information



_

Recuperación del sistema de archivos de un volumen lógico perdido Recovering file system from a logic volume LVM

Problema:
La información del  LVM fue borrada y no hubo de manera de recuperar el LVM.
No se cuenta con la información del LVM ya que no aparece al ejecutar el comando lvs ni tampoco hay archivos de respaldo de la configuración en /etc/lvm.
El LVM está contenido en un solo volumen físico contenido en una memoria de tipo USB.

1.  Verificamos las particiones de la USB:

# parted /dev/sdc p
Model: SanDisk Ultra (scsi)
Disk /dev/sdc: 15.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  211MB   210MB   fat16        EFI System Partition  boot, esp
 2      211MB   1285MB  1074MB  xfs                                msftdata
 3      1285MB  15.7GB  14.4GB                                     lvm 

2.  Los archivos a recuperar son de la partición 3 marcada con el flag 'lvm'. Podemos ver la información contenida en esta partición, mediante:

# hexdump -C /dev/sdc3 | head -12
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001000  16 d6 8e db 20 4c 56 4d  32 20 78 5b 35 41 25 72  |.... LVM2 x[5A%r|
00001010  30 4e 2a 3e 01 00 00 00  00 10 00 00 00 00 00 00  |0N*>............|
00001020  00 f0 0f 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001200  63 65 6e 74 6f 73 20 7b  0a 69 64 20 3d 20 22 41  |centos {.id = "A|
00001210  66 4c 31 55 61 2d 32 50  34 58 2d 5a 6f 75 64 2d  |fL1Ua-2P4X-Zoud-|
00001220  6b 31 63 46 2d 45 32 44  51 2d 61 79 46 36 2d 76  |k1cF-E2DQ-ayF6-v|
00001230  70 7a 30 75 70 22 0a 73  65 71 6e 6f 20 3d 20 31  |pz0up".seqno = 1|
00001240  0a 66 6f 72 6d 61 74 20  3d 20 22 6c 76 6d 32 22  |.format = "lvm2"|


Más adelante podemos ver que existe un file system XFS, en:
00001cb0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00100000  58 46 53 42 00 00 10 00  00 00 00 00 00 35 a0 00  |XFSB.........5..|
00100010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00100020  23 f4 10 71 76 ca 4c 14  96 21 ae 3d 02 4b 96 f4  |#..qv.L..!.=.K..|
00100030  00 00 00 00 00 20 00 04  00 00 00 00 00 00 00 40  |..... .........@|
00100040  00 00 00 00 00 00 00 41  00 00 00 00 00 00 00 42  |.......A.......B|
00100050  00 00 00 01 00 0d 68 00  00 00 00 04 00 00 00 00  |......h.........|
00100060  00 00 0a 00 b4 b5 02 00  02 00 00 08 00 00 00 00  |................|


3. Este file system lo podemos montar usando el dispositivo loop con el 'offset' indicado:
losetup /dev/loop0 /dev/sdc3 --offset $((0x100000))

4. Podemos verificar que sí es un XFS:
file -s /dev/loop0
/dev/loop0: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)


5. Y lo montamos:
cd /mnt
mkdir fs
mount /dev/loop0 fs
cd fs
ls

bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var


Referencias:
https://www.robmeerman.co.uk/unix/lvm_recovery