зробити певну версію програмного забезпечення за замовчуванням в ubuntu


11

На даний момент у ubuntu 12.04 встановлена ​​2 версії php.

один для 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 за замовчуванням для запуску?

Btw, моя оболонка за замовчуванням 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 update-alternative - 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

btw, що саме робить команда оновлення-альтернатива?
chanHXC

Зберігає вкладку, які програми, які надають ту саму послугу, ви вважаєте за краще використовувати. Як, наприклад, Chrome, Chromium, Firefox, Iceweasel на одному ПК, який слід відкрити, натиснувши посилання на електронну пошту? Одне оновлення-альтернативи вказано як головний.
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.