làm cho một phiên bản phần mềm nhất định trở thành mặc định trong Ubuntu


11

Tôi hiện có 2 phiên bản php được cài đặt trên Ubuntu 12.04.

một cho php 5.3 được cài đặt bằng apt-get trong khi một cái khác được cài đặt với xampp với php 5.5

Khi tôi thực hiện các lệnh này:

> 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

Làm cách nào để biến php 5.5 thành phiên bản mặc định được chạy?

Btw, vỏ mặc định của tôi là zsh. đây là dòng trong .zshrc của tôi

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

Cập nhật

Nếu tôi đang chọn tùy chọn thay thế cập nhật . Đây là những gì tôi hiện đang có.

>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

Câu trả lời:


18

Tôi nghĩ cách tốt nhất để làm điều này trên Ubuntu là như thế:

cập nhật thay thế sudo - set php /usr/bin/php5.6

Bạn có thể thay đổi phiên bản theo nhu cầu của bạn.


Tôi đồng ý rằng đây là cách tốt nhất để làm điều này. Nó cập nhật liên kết trong / usr / bin / php thành phiên bản chính xác. Trong Ubuntu 16, bạn có thể cài đặt php5.6 và php7.0 và để chúng chạy cùng một lúc - điều này thật tuyệt, nhưng đôi khi bạn muốn cập nhật mặc định.
Dave Drager

10

Có một triệu điều bạn có thể làm thay vì thay đổi $ PATH của mình.

Một là xác định bí danh trong tệp /home/YOUR_NAME/.bashrc của bạn,

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

Một cách khác là đổi tên phiên bản php mà bạn không muốn và chuyển đổi / usr / bin / php trong một liên kết tượng trưng cho phiên bản bạn muốn sử dụng:

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

Hoặc bạn có thể sử dụng hệ thống thay thế Debian. Đầu tiên, bạn cài đặt một thay thế php,

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

sau đó bạn kiểm soát rằng mọi thứ đều ổn bằng phương tiện

sudo update-alternatives --display php

Và nhiều, nhiều hơn nữa.


cám ơn vì sự gợi ý. Nhưng cách tốt nhất ở đó là gì. tôi thực sự có một bí danh là phplatest với phiên bản php 5.5. sẽ liên kết mềm php trong / usr / bin / php làm cho phiên bản khác trong xampp được mặc định?
chanHXC

btw, chính xác một lệnh cập nhật thay thế làm gì?
chanHXC

Giữ tab các chương trình, tất cả cung cấp cùng một dịch vụ, bạn muốn sử dụng. Giống như có Chrome, Chromium, Firefox, Iceweasel trên cùng một máy tính, cái nào sẽ mở khi bạn nhấp vào alink trong e-mail? Một thay thế cập nhật đã được chỉ định là chủ.
MariusMatutiae

được rồi cảm ơn. nhưng tại sao tôi lại nhận được đối số không xác định `php '. khi thực hiện cập nhật thay thế
chanHXC

@chanHXC Đó là vì tôi đã mắc lỗi trong cú pháp. Tôi đã cập nhật bài viết của mình, nó sẽ hoạt động. Hãy nhớ chuyển php hiện có sang / usr / bin / php_old
MariusMatutiae

3
sudo update-alternatives --config php

Điều này có thể thân thiện với người dùng hơn vì nó cho phép người dùng lựa chọn tương tác những lựa chọn thay thế có sẵn để lựa chọn.
Rolando Isidoro
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.