Mi sistema FreeBSD cuenta actualmente con las versiones 2.7.14 y 3.6.5 del lenguaje de programación e intérprete Python. Sin embargo, al ejecutar env python
o simplemente python
, no se encuentra el binario.
Mi estación de trabajo corriendo FreeBSD 11.1 cuenta con las versiones de Python 2.7.14 y 3.6.5:
root@hal9000:/usr/home/emi # python2 --version Python 2.7.14 root@hal9000:/usr/home/emi # python3 --version Python 3.6.5
Sin embargo, al tratar de ejecutar python
, no se encuentra el comando o ejecutable:
root@hal9000:/usr/home/emi # env python env: python: No such file or directory
root@hal9000:/usr/home/emi # which python python: Command not found.
Esto se debe a que es necesario ejecutar python2
o python3
, según la versión del intérprete que se desee utilizar. Ambos son enlaces simbólicos provistos por los meta-ports lang/python2 y lang/python3. Estos ports se encargan de mantener los enlaces simbólicos actualizados y apuntando a la última versión instalada de cada versión de Python (valga la redundancia):
emi@hal9000:~ % file /usr/local/bin/python2 /usr/local/bin/python2: symbolic link to python2.7 emi@hal9000:~ % file -b /usr/local/bin/python2.7 ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 11.0 (1100122), FreeBSD-style, stripped
emi@hal9000:~ % file /usr/local/bin/python3 /usr/local/bin/python3: symbolic link to python3.6 emi@hal9000:~ % file -b /usr/local/bin/python3.6 ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 11.1, FreeBSD-style, stripped
Sin embargo es posible instalar el meta-port lang/python, el cual instalará los enlaces simbólicos correspondientes a la versión por defecto de Python:
# pkg install python
De esta forma se provee correctamente el comando python
:
root@hal9000:/usr/home/emi # which python /usr/bin/python root@hal9000:/usr/home/emi # python --version Python 2.7.14
Se observa que actualmente la versión por defecto es python2:
root@hal9000:/usr/home/emi # file /usr/local/bin/python /usr/local/bin/python: symbolic link to python2
Si se desea cambiar la versión por defecto manteniendo Python 2.7 instalado, será necesario crear el enlace simbólico manualmente:
# cd /usr/local/bin # mv python python.pkg # ln -s python3 python
Referencias
- Contents of /head/lang/python/pkg-descr
- Contents of /head/lang/python2/pkg-descr
- Contents of /head/lang/python3/pkg-descr