hacer que una determinada versión de software sea la predeterminada en ubuntu


11

Actualmente tengo 2 versiones de php instaladas en ubuntu 12.04.

uno para php 5.3 instalado usando apt-get mientras que el otro está instalado con xampp con php 5.5

Cuando ejecuto estos comandos:

> which php
/usr/bin/php

> php --version
PHP 5.3.10-1ubuntu3.8 with Suhosin-Patch (cli) (built: Sep  4 2013 20:05:42) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethan

>echo $PATH
/home/chanhxc/bin
/usr/lib/lightdm/lightdm
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/opt/lampp/bin
/home/chanhxc/pear/bin
/home/chanhxc/.composer/vendor/bin
/opt/lampp/bin
/home/chanhxc/bin
/usr/lib/lightdm/lightdm
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/home/chanhxc/bin
/usr/lib/lightdm/lightdm
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/opt/lampp/bin
/home/chanhxc/pear/bin
/home/chanhxc/.composer/vendor/bin
/opt/lampp/bin

¿Cómo hago que php 5.5 sea la versión predeterminada para ejecutar?

Por cierto, mi shell predeterminado es zsh. aquí está la línea en mi .zshrc

export   PATH=$PATH:/home/chanhxc/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
    # xampp, pear, composer
export PATH=$PATH:/opt/lampp/bin:/home/chanhxc/pear/bin:/home/chanhxc/.composer/vendor/bin:/opt/lampp/bin

Actualizar

Si estoy optando por la opción de actualización de alternativas . Esto es lo que tengo actualmente.

>update-alternatives --query php
Link: php
Status: auto
Best: /usr/bin/php5
Value: /usr/bin/php5

Alternative: /usr/bin/php5
Priority: 50
Slaves:
 php.1.gz /usr/share/man/man1/php5.1.gz

Respuestas:


18

Creo que la mejor manera de hacer esto en Ubuntu es así:

alternativas de actualización de sudo --set php /usr/bin/php5.6

Puede cambiar la versión según sus necesidades.


Estoy de acuerdo en que esta es la mejor manera de hacer esto. Actualiza el enlace en / usr / bin / php a la versión correcta. En Ubuntu 16 puede instalar php5.6 y php7.0 y hacer que se ejecuten al mismo tiempo, lo cual es bueno, pero a veces desea actualizar el valor predeterminado.
Dave Drager

10

Hay un millón de cosas que puede hacer en lugar de cambiar su $ PATH.

Una es definir un alias en su archivo /home/YOUR_NAME/.bashrc,

alias myphp=' /path/to/my/favorite/php ' 

Otra es cambiar el nombre de la versión de php que no desea y transformar / usr / bin / php en un enlace simbólico a la versión que desea utilizar:

sudo mv /usr/bin/php /usr/bin/php_5.3.10
sudo ln -s /path/to/php/you/want /usr/bin/php

O puede usar el sistema de alternativas de Debian. Primero, instalas una alternativa php,

 sudo update-alternatives --install "/usr/bin/php" "php" "/pathto/your/favorite/php" 1 

entonces controlas que todo está bien por medio de

sudo update-alternatives --display php

Y mucho, mucho más.


Gracias por la sugerencia. Pero, ¿cuál es la mejor manera allí? De hecho, tengo un alias como phplatest con la versión php 5.5. ¿Soft vinculando php en / usr / bin / php hace que la otra versión en xampp sea predeterminada?
chanHXC

por cierto, ¿qué hace exactamente un comando de actualización alternativa?
chanHXC

Mantiene la pestaña de qué programas, todos brindan el mismo servicio que prefiere usar. Como tener Chrome, Chromium, Firefox, Iceweasel en la misma computadora, ¿cuál debería abrir al hacer clic en un enlace en un correo electrónico? La actualización de una alternativa ha indicado como el maestro.
MariusMatutiae

OK gracias. pero ¿por qué obtengo un argumento desconocido 'php'? al ejecutar alternativas de actualización
chanHXC

@chanHXC Eso es porque cometí un error en la sintaxis. He actualizado mi publicación, ahora debería funcionar. Recuerde mover el php existente a / usr / bin / php_old
MariusMatutiae el

3
sudo update-alternatives --config php

Esto podría ser más fácil de usar, ya que le permite al usuario seleccionar interactivamente cuál de las alternativas disponibles elegir.
Rolando Isidoro
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.