faire une certaine version du logiciel par défaut dans ubuntu

11

J'ai actuellement 2 versions de php installées sur Ubuntu 12.04.

un pour php 5.3 installé en utilisant apt-get tandis que l'autre est installé avec xampp avec php 5.5

Quand j'exécute ces commandes:

> 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

Comment faire de PHP 5.5 la version par défaut à exécuter?

Btw, mon shell par défaut est zsh. voici la ligne dans mon .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

Mettre à jour

Si j'opte pour l' option update-alternatives . Voici ce que j'ai actuellement.

>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
chanHXC
la source

Réponses:

18

Je pense que la meilleure façon de le faire sur Ubuntu est comme ça:

sudo update-alternatives --set php /usr/bin/php5.6

Vous pouvez changer la version selon vos besoins.

Brainski
la source
Je suis d'accord que c'est la meilleure façon de procéder. Il met à jour le lien dans / usr / bin / php vers la version correcte. Dans Ubuntu 16, vous pouvez installer php5.6 et php7.0 et les faire fonctionner en même temps - ce qui est bien, mais parfois vous voulez mettre à jour la valeur par défaut.
Dave Drager
10

Il y a un million de choses que vous pouvez faire au lieu de changer votre $ PATH.

L'une consiste à définir un alias dans votre fichier /home/YOUR_NAME/.bashrc,

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

Une autre consiste à renommer la version de php dont vous ne voulez pas et à transformer / usr / bin / php en un lien symbolique vers la version que vous souhaitez utiliser:

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

Ou vous pouvez utiliser le système alternatif Debian. Tout d'abord, vous installez une alternative php,

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

alors vous contrôlez que tout va bien au moyen de

sudo update-alternatives --display php

Et bien plus encore.

MariusMatutiae
la source
Merci pour la suggestion. mais quelle est la meilleure façon d'y arriver. j'ai en fait un alias comme phplatest avec la version php 5.5. la liaison douce de php dans / usr / bin / php rend-elle l'autre version de xampp par défaut?
chanHXC
btw, que fait exactement une commande update-alternative?
chanHXC
Conserve un onglet sur les programmes, offrant tous le même service, que vous préférez utiliser. Comme avoir Chrome, Chrome, Firefox, Iceweasel sur le même PC, lequel ouvrir lorsque vous cliquez sur alink dans un e-mail? La seule alternative de mise à jour a indiqué que le maître.
MariusMatutiae
OK merci. mais pourquoi ai-je un argument inconnu `php '. lors de l'exécution des alternatives de mise à jour
chanHXC
@chanHXC C'est parce que j'ai fait une erreur dans la syntaxe. J'ai mis à jour mon message, cela devrait maintenant fonctionner. N'oubliez pas de déplacer le php existant vers / usr / bin / php_old
MariusMatutiae
3
sudo update-alternatives --config php
serghei
la source
Cela pourrait être plus convivial car il permet à l'utilisateur de sélectionner de manière interactive laquelle des alternatives disponibles parmi lesquelles choisir.
Rolando Isidoro