tornar uma certa versão de software o padrão no ubuntu

11

Atualmente, tenho 2 versões do php instaladas no ubuntu 12.04.

um para o php 5.3 instalado usando o apt-get enquanto o outro é instalado com o xampp com o php 5.5

Quando executo estes 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

Como faço para tornar o php 5.5 a versão padrão a ser executada?

Btw, meu shell padrão é zsh. aqui está a linha no meu .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

Atualizar

Se eu estiver optando pela opção de atualização de alternativas . Aqui está o que eu tenho atualmente.

>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
fonte

Respostas:

18

Eu acho que a melhor maneira de fazer isso no Ubuntu é assim:

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

Você pode alterar a versão de acordo com suas necessidades.

Brainski
fonte
Concordo que esta é a melhor maneira de fazer isso. Ele atualiza o link em / usr / bin / php para a versão correta. No Ubuntu 16, você pode instalar o php5.6 e o ​​php7.0 e executá-los ao mesmo tempo - o que é bom, mas às vezes você deseja atualizar o padrão.
precisa
10

Há um milhão de coisas que você pode fazer em vez de alterar seu $ PATH.

Uma é definir um alias no seu arquivo /home/YOUR_NAME/.bashrc,

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

Outra é renomear a versão do php que você não deseja e transformar / usr / bin / php em um link simbólico para a versão que você deseja usar:

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

Ou você pode usar o sistema de alternativas Debian. Primeiro, você instala uma alternativa php,

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

então você controla que está tudo bem por meio de

sudo update-alternatives --display php

E muito, muito mais.

MariusMatutiae
fonte
Obrigado pela sugestão. mas qual é o melhor caminho até lá. Na verdade, eu tenho um apelido como phplatest com a versão 5.5 do php. o php de vinculação suave em / usr / bin / php torna a outra versão no xampp padrão?
ChanHXC #
btw, o que exatamente um comando update-alternative faz?
ChanHXC #
Mantém a aba de quais programas, todos fornecendo o mesmo serviço, você prefere usar. Como ter Chrome, Chromium, Firefox, Iceweasel no mesmo PC, qual deles deve abrir quando você clica em um link em um e-mail? As alternativas de atualização indicadas como mestre.
MariusMatutiae
ok obrigado. mas por que eu recebo um argumento desconhecido `php '. ao executar alternativas de atualização
chanHXC
@chanHXC Isso porque cometi um erro na sintaxe. Eu atualizei minha postagem, ela deve funcionar agora. Lembre-se de mover o php existente para / usr / bin / php_old
MariusMatutiae
3
sudo update-alternatives --config php
serghei
fonte
Isso pode ser mais amigável, pois permite que o usuário selecione interativamente qual das alternativas disponíveis para escolher.
Rolando Isidoro