сделать определенную версию программного обеспечения по умолчанию в Ubuntu


11

В настоящее время у меня есть 2 версии PHP установлены на Ubuntu 12.04.

один для php 5.3 установлен с помощью apt-get, а другой установлен с xampp с php 5.5

Когда я выполняю эти команды:

> 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

Как мне сделать php 5.5 версией по умолчанию для запуска?

Кстати, моя оболочка по умолчанию - zsh. вот строка в моем .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

Обновить

Если я выбираю вариант обновления альтернатив . Вот что у меня сейчас есть.

>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

Ответы:


18

Я думаю, что лучший способ сделать это в Ubuntu такой:

альтернативы обновления sudo --set php /usr/bin/php5.6

Вы можете изменить версию в соответствии с вашими потребностями.


Я согласен, что это лучший способ сделать это. Обновляет ссылку в / usr / bin / php до правильной версии. В Ubuntu 16 вы можете установить php5.6 и php7.0 и запускать их одновременно - это хорошо, но иногда вы хотите обновить настройки по умолчанию.
Дэйв Драгер

10

Есть миллион вещей, которые вы можете сделать вместо того, чтобы изменить свой $ PATH.

Одним из них является определение псевдонима в вашем файле /home/YOUR_NAME/.bashrc,

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

Другой способ - переименовать версию php, которая вам не нужна, и преобразовать / usr / bin / php в символическую ссылку на версию, которую вы хотите использовать:

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

Или вы можете использовать систему альтернатив Debian. Во-первых, вы устанавливаете альтернативу PHP,

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

затем вы контролируете, что все в порядке с помощью

sudo update-alternatives --display php

И многое, многое другое.


спасибо за предложение. но как лучше там. на самом деле у меня есть псевдоним phplatest с версией php 5.5. сделает ли мягкая ссылка php в / usr / bin / php другой версией в xampp по умолчанию?
chanHXC

Кстати, что именно делает альтернативная команда обновления?
chanHXC

Сохраняет вкладку, какие программы, все предоставляющие одинаковый сервис, вы предпочитаете использовать. Например, Chrome, Chromium, Firefox, Iceweasel на одном компьютере, который нужно открыть, когда вы нажмете на alink в электронной почте? Один вариант обновления указал как мастер.
MariusMatutiae

хорошо спасибо. но почему я получаю неизвестный аргумент `php '. при выполнении обновлений альтернатив
chanHXC

@chanHXC Это потому, что я сделал ошибку в синтаксисе. Я обновил свой пост, теперь он должен работать. Не забудьте переместить существующий php в / usr / bin / php_old
MariusMatutiae

3
sudo update-alternatives --config php

Это может быть более удобным для пользователя, поскольку позволяет пользователю в интерактивном режиме выбирать, какую из доступных альтернатив выбрать.
Роландо Исидоро
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.