jadikan versi perangkat lunak tertentu sebagai default di ubuntu

11

Saat ini saya memiliki 2 versi php diinstal di ubuntu 12.04.

satu untuk php 5.3 diinstal menggunakan apt-get sedangkan yang lainnya diinstal dengan xampp dengan php 5.5

Ketika saya menjalankan perintah ini:

> 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

Bagaimana saya membuat php 5.5 versi default untuk dijalankan?

Btw, shell default saya adalah zsh. inilah baris di .zshrc saya

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

Memperbarui

Jika saya memilih opsi pembaruan-alternatif . Inilah yang saya miliki saat ini.

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

Jawaban:

18

Saya pikir cara terbaik untuk melakukan ini di Ubuntu adalah seperti itu:

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

Anda dapat mengubah versi sesuai dengan kebutuhan Anda.

Brainski
sumber
Saya setuju bahwa ini adalah cara terbaik untuk melakukan ini. Ini memperbarui tautan di / usr / bin / php ke versi yang benar. Di Ubuntu 16 Anda dapat menginstal php5.6 dan php7.0 dan membuatnya berjalan pada saat yang sama - yang bagus, tetapi kadang-kadang Anda ingin memperbarui default.
Dave Drager
10

Ada sejuta hal yang dapat Anda lakukan daripada mengubah $ PATH Anda.

Pertama adalah mendefinisikan alias di file /home/YOUR_NAME/.bashrc Anda,

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

Yang lain adalah mengubah nama versi php yang tidak Anda inginkan, dan untuk mengubah / usr / bin / php di tautan simbolis ke versi yang ingin Anda gunakan:

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

Atau Anda dapat menggunakan sistem alternatif Debian. Pertama, Anda menginstal alternatif php,

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

maka Anda mengontrol bahwa semuanya baik-baik saja dengan cara

sudo update-alternatives --display php

Dan masih banyak lagi.

MariusMatutiae
sumber
Terima kasih untuk sarannya. tapi apa cara terbaik di sana. saya sebenarnya memiliki alias sebagai phplatest dengan versi php 5.5. soft linking php di / usr / bin / php membuat versi lain di xampp menjadi default?
chanHXC
btw, apa sebenarnya yang dilakukan perintah pembaruan-alternatif?
chanHXC
Tetap awasi program mana, semuanya menyediakan layanan yang sama, yang Anda sukai untuk digunakan. Seperti memiliki Chrome, Chromium, Firefox, Iceweasel di PC yang sama, yang mana yang harus dibuka ketika Anda mengklik alink di email? Satu pembaruan-alternatif telah ditunjukkan sebagai master.
MariusMatutiae
Ok terima kasih. tetapi mengapa saya mendapatkan argumen `php 'yang tidak dikenal. ketika menjalankan pembaruan-alternatif
chanHXC
@chanHXC Itu karena saya membuat kesalahan dalam sintaksis. Saya telah memperbarui posting saya, sekarang seharusnya sudah berfungsi. Ingatlah untuk memindahkan php yang ada ke / usr / bin / php_old
MariusMatutiae
3
sudo update-alternatives --config php
serghei
sumber
Ini mungkin lebih ramah pengguna karena memungkinkan pengguna untuk memilih secara interaktif dari alternatif yang tersedia untuk dipilih.
Rolando Isidoro