使用ruby-install
,要安装最新的稳定ruby版本,只需要ruby-install ruby
。
然而,pyenv
似乎需要像pyenv install $(pyenv install --list | sed 's/^ //' | grep '^\d' | grep --invert-match 'dev\|a\|b' | tail -1)
那样做一些荒谬的事情。
有更好的方法吗?为什么python工具似乎总是使用ruby(gem update
vs pip list --outdated | awk '!/Could not|ignored/ { print $1 }' | xargs pip install --upgrade
)安装最新版本这样一个迟钝的过程?我希望我是那个缺少一些东西的人,但我永远无法在网上找到简单的解决方案。
答案 0 :(得分:6)
尝试https://github.com/momo-lab/pyenv-install-latest
...安装
git clone https://github.com/momo-lab/pyenv-install-latest.git "$(pyenv root)"/plugins/pyenv-install-latest
最新的2.7版python ...
pyenv install-latest 2.7
和python 3 ...
pyenv install-latest
答案 1 :(得分:-1)
pyenv install --list | grep --extended-regexp "^\s*[0-9][0-9.]*[0-9]\s*$" | tail -1
正则表达式查找以数字 ^[0-9]
开头,后跟任意数量的点和/或数字 [0-9.]*
,并以数字 [0-9]$
结尾的行。可能会出现前导 ^\s*
或尾随 \s*$
空格,但不是必须的。
编辑:安装:
pyenv install $(pyenv install --list | grep --extended-regexp "^\s*[0-9][0-9.]*[0-9]\s*$" | tail -1)
答案 2 :(得分:-2)
以下内容比建议的“hack”短一些,并假设您不想要3.5.0b1
这样的版本。
pyenv install $(pyenv install --list | grep -v - | grep -v b | tail -1)
答案 3 :(得分:-3)
因为在最新的"稳定"一切的版本很少是一个好主意。不同的上游维护者有一个不同的稳定概念(我的小pymumble fork和eglibc有非常不同的释放质量概念)。最新的稳定版本通常会引入重大变化,而且通常不建议盲目升级,而不了解您为代码库带来的变化。
在ruby的情况下,1.8的线程是greenthreads,而1.9的线程是内核线程。虽然他们维护了相同的API,但是当您的语言支持C gems时,完全更改底层线程模块在我所知的任何Universe中都是不可接受的。将任何多线程代码升级到最新的稳定ruby很可能会破坏一切。 Arch Linux在将每个人升级到python 3时都有类似的惨败,忽略了它们对python 2的无数依赖关系。
通常的解决方案是依赖你的发行版的新版本的python,并使用python的virtualenv或python3的venv来创建基于特定版本的python的环境。