ustaw pewną wersję oprogramowania jako domyślną w Ubuntu

11

Obecnie mam 2 wersje php zainstalowane na Ubuntu 12.04.

jeden dla php 5.3 zainstalowany przy użyciu apt-get, a drugi dla xampp z php 5.5

Kiedy wykonuję te polecenia:

> 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

Jak ustawić php 5.5 jako domyślną wersję do uruchomienia?

Przy okazji, moją domyślną powłoką jest zsh. oto wiersz w moim .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

Aktualizacja

Jeśli wybieram opcję aktualizacji alternatyw . Oto, co aktualnie mam.

>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
źródło

Odpowiedzi:

18

Myślę, że najlepszym sposobem na to w Ubuntu jest:

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

Możesz zmienić wersję zgodnie ze swoimi potrzebami.

Brainski
źródło
Zgadzam się, że to najlepszy sposób, aby to zrobić. Aktualizuje link w / usr / bin / php do poprawnej wersji. W Ubuntu 16 możesz zainstalować php5.6 i php7.0 i jednocześnie uruchamiać je - co jest miłe, ale czasami chcesz zaktualizować ustawienia domyślne.
Dave Drager
10

Istnieje milion rzeczy, które możesz zrobić zamiast zmieniać swoją $ PATH.

Jednym z nich jest zdefiniowanie aliasu w pliku /home/YOUR_NAME/.bashrc,

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

Innym jest zmiana nazwy wersji php, której nie chcesz, i przekształcenie / usr / bin / php w symboliczny link do wersji, której chcesz użyć:

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

Lub możesz użyć systemu alternatyw Debiana. Najpierw instalujesz php,

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

wtedy kontrolujesz, że wszystko jest w porządku za pomocą

sudo update-alternatives --display php

I dużo dużo więcej.

MariusMatutiae
źródło
dzieki za sugestie. ale jaka jest najlepsza droga. faktycznie mam alias jako phplatest z wersją php 5.5. czy miękkie połączenie php w / usr / bin / php spowoduje, że inna wersja w xampp będzie domyślna?
chanHXC
btw, co dokładnie robi komenda update-alternate?
chanHXC
Śledzi, z których programów korzystających z tej samej usługi wolisz korzystać. Podobnie jak Chrome, Chromium, Firefox, Iceweasel na tym samym komputerze, który należy otworzyć po kliknięciu łącza alink w wiadomości e-mail? Jedna alternatywa aktualizacji wskazała jako master.
MariusMatutiae
ok dzięki. ale dlaczego otrzymuję nieznany argument `php '. podczas wykonywania aktualizacji-alternatyw
chanHXC
@chanHXC To dlatego, że popełniłem błąd w składni. Zaktualizowałem swój post, powinien teraz działać. Pamiętaj, aby przenieść istniejącego php do / usr / bin / php_old
MariusMatutiae
3
sudo update-alternatives --config php
serghei
źródło
Może to być bardziej przyjazne dla użytkownika, ponieważ pozwala użytkownikowi interaktywnie wybrać jedną z dostępnych alternatyw do wyboru.
Rolando Isidoro