« 上一篇下一篇 »

如何在Linux 系统中切换同一个程序的多种新旧不同的版本

     平时的工作中,我们需要用到不同版本的PHP,那么我们应该如何轻松的进行版本更换呢?通俗的来说,你可以通过 update-alternatives 命令从系统范围设置程序的版本。如果你希望可以在不同目录动态设置不同的程序版本,该如何完成呢?在这种情况下,alt 工具可以大显身手。alt 是一个命令行工具,可以让你在类 Unix 系统中切换相同程序的不同版本。该工具简单易用,是 Rust 语言编写的自由、开源软件。如果你希望在不同软件包版本下测试你的应用,那么 alt 是你不错的选择。

一、安装alt 工具安装 alt 工具十分简单。

运行如下命令,即可在 Linux 主机上安装 alt:

$ curl -sL https://github.com/dotboris/alt/raw/master/install.sh | bash -s
下一步,将 shims 目录添加到你的 PATH 环境变量中,具体操作取决于你使用的 Shell。

对于 Bash:

$ echo 'export PATH="$HOME/.local/alt/shims:$PATH"' >> ~/.bashrc
$ source ~/.bashrc
对于 Zsh:

$ echo 'export PATH="$HOME/.local/alt/shims:$PATH"' >> ~/.zshrc
$ source ~/.zshrc
对于 Fish:

$ echo 'set -x PATH "$HOME/.local/alt/shims" $PATH' >> ~/.config/fish/config.fish
现在 alt 已经安装完毕!

使用 alt 工具在 Linux 系统中切换相同程序的不同版本
如我之前所述,alt 只影响当前目录。换句话说,当你进行版本切换时,只在当前目录生效,而不是整个系统范围。

 

二、另外一个可以方便切换版本的神器pyenv github

发现了一个神器
用这个工具可以很容易控制环境中的python版本

安装:

cd ~
git clone git://github.com/yyuu/pyenv.git .pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

常用命令;
pyenv versions : 查看系统中存在的python版本
pyenv install 3.5.0 : 下载python3.5.0版本
pyenv uninstall 3.5.0 卸载python3.5.0版本

python的切换
1. pyenv local 3.5.0 #设置本地的python版本
2. pyenv global 3.5.0 #设置全局的python版本 一般不推荐
3. pyenv shell 3.5.0 #设置当前shell的python版本

pyenv 有一个插件可以用来创建虚拟的python环境 —– * pyenv-virtualenv* 用于管理python库包

pyenv virtualenv 3.5.0 py3.5.0 #创建虚拟环境
pyenv virtualenvs #列出虚拟环境
pyenv activate env-name  # 激活虚拟环境
pyenv deactivate #退出虚拟环境,回到系统环境
1

如果不需要这个环境就可以直接删除这个虚拟环境
rm -rf ~/.pyenv/versions/py3.5.0

下面运行该命令并选取我们希望在 myproject 目录中使用的 PHP 版本:

$ alt use php
我希望使用 PHP5.6 版本,故我(使用方向键)选取该版本并点击回车键。

 

现在,你可以在 /home/sk/myproject 目录下使用 PHP 5.6 版本啦。

让我们检查一下,在 myproject 目录下是否默认使用 PHP 5.6 版本:

 

   只要你不设置成其它版本,(在该目录下)将一直使用 PHP 5.6 版本。清楚了吗?很好!请注意,我们仅在这个目录下使用 PHP 5.6 版本。在系统范围内(LCTT 译注:当然是没单独设置过其它版本的目录下),PHP 7.2 仍是默认的版本。让我们检验一下

  从上面可以看出,我有两个版本的 PHP:在 myproject 目录下,使用的版本为 PHP 5.6;在 myproject 外的其它目录,使用的版本为 PHP 7.2。

同理,你可以为每个目录设置你希望的程序版本。我这里使用 PHP 仅用于说明操作,但方法适用于任何你打算使用的软件,例如 NodeJS 等。

下面是 NodeJS 的示例视频。

 

 

    以上两个小工具都可以轻松的在Linux系统下将同一个程序的版本进行快捷的切换,提高了工作效率!