目录

1. 前言2. 环境3. 操作3.1 准备工作及注意点3.2 创建新的普通用户3.3 安装 pyenv3.4 安装 rbenv

4. 其他踩坑点(重点避坑)

1. 前言

一位小白同学兴高采烈买了服务器后,第一时间一定热情高涨,心想一定要发挥出它的作用出来,比如把开发环境从 Windows 迁移到 Linux 上?在服务器上搭建一个属于自己的博客?……

当然,在做这些之前一定要把环境、工具等准备工作做齐,这步看似简单,但对于初步接触的小白来讲,还是有很多坑会踩,虽可能此前已经能熟练使用虚拟机上的 Linux 系统,但与使用服务器上的系统还是有好些不一样的地方,或许是虚拟机上几乎不会用到、注意到的点——就成为了坑!(典型的比如权限问题…)

下面就记录一下我在服务器上安装 pyenv 和 rbenv 时遇到的问题,也为其他初学者避下坑。(大神请勿鄙视这些基操,只有想不到,没有菜鸟遇不到)

2. 环境

服务器:华为云耀云服务器 HECS(1 核 2GB 40GB 高 IO 硬盘;悄 mi mi 高兴一下,新人是真便宜哇!)python 版本管理器:pyenv pyenv 是一款 python 版本管理器,不同项目可能需要不同的 python 版本,有的需要 python2 有的需要 python3,这时候就需要这样一款版本管理器,方便针对具体项目需要随时切换 python 版本,甚至是为其建立单独的隔离环境(virtualenv)。Windows下也有对应版本:pyenv-winruby 版本管理器:rbenv 同pyenv,是ruby的版本管理器。如同Java的jenv,这一系列我都挺喜欢的,好用、简单、基本相同。系统:Ubuntu20.04

3. 操作

3.1 准备工作及注意点

登录新到手的服务器后,默认的用户一般都是 root 用户,此时建议新建一个拥有 sudo 权限的普通用户,后面安装软件、使用等操作都在普通用户下进行,原因如下:

最直接的就是影响后续使用。在 root 权限甚至 root 用户目录下的文件,用户及组都是 root,一旦你切换到普通用户时,将没有权限访问这些内容,自然也就无法使用。危险、存在安全隐患。root 作为最高权限用户,你将工具、文件、甚至后续部署的博客网站放在它的里面,一旦出现问题,那结果,呵呵呵~

其二,也是非常重要的一点: 尽量都安装在 /usr/local 路径内!!!千千万万别随手安装在 /root 或 /home/your_new_user 路径下!!!(重要的事说三遍!)

这里解释下原因: 一是因为,如果安装在 root 目录下,那么你只有是 root 身份时才能使用该软件,因为普通用户无权访问这个路径;

其二,如果安装在 /home/user 内时,当切换到其他用户时(包括 root),该文件夹会被隔离,你仍然无法访问使用!因此放在 /usr/local 文件夹内时是方便的,大家都能访问使用,就相当于 Windows 下的 C:/Program Files。

因此下面就做一整个流程的全程记录。

3.2 创建新的普通用户

以 root 用户登录服务器创建新用户 命令:adduser your_new_user 其余选项都可以默认或者自行选择,添加成功后,新用户的路径为:/home/your_new_user为新用户增加 sudo 权限 方法一是去修改 /etc/sudoers 的文件内容。 这里建议方法二,直接一行命令 adduser your_new_user sudo 接下来的操作,建议不要再用 root 了,登录刚刚新建的普通用户进行操作。

3.3 安装 pyenv

登录普通用户安装依赖环境sudo apt install make build-essential llvm libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl libncurses5-dev xz-utils libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev tk-dev

克隆 pyenv 源码 pyenv官网 有参考教程。但只要是在国内的服务器,不要妄图使用 culr 的下载安装程序来自动安装,不会成功的。git clone --depth 1 https://github.com/pyenv/pyenv.git /usr/local/.pyenv

将环境变量添加到全局,并使之立即生效 vim /etc/profile 然后将一下内容添加到最后即可。# for pyenv

export PYENV_ROOT="/usr/local/.pyenv"

export PATH="$PYENV_ROOT/bin:$PATH"

eval "$(pyenv init --path)"

eval "$(pyenv virtualenv-init -)"

然后使用命令使之立即生效,pyenv 就可以使用了:source /etc/profilepyenv 常用命令pyenv versions # 显示所有已经安装的python版本

pyenv version # 显示当前设置的python版本

pyenv install --list # 显示可以安装的python版本

pyenv install # 安装版本的python

pyenv global # 设置全局状态的python版本

pyenv local # 设置当前目录(或其子目录)下的python的版本

pyenv shell # 仅为当前shell会话选择

pyenv uninstall # 卸载版本的python

可能出现问题和可能需要的插件:

安装速度慢 因为 pyenv 默认是从官网下载的,所以速度就会很慢,有时候甚至会失败,多试几次就好了。 还有一种就是离线安装的方法。 自行从 python 官网下载需要的 python 版本,下载后缀为 tar.xz 的源文件,例如“Python-3.8.10.tar.xz”。 然后将该文件放在 /.pyenv/cache 路径下,第一次安装 pyenv 可能还没有这个缓存文件夹,自己在 .pyenv 目录下创建一个就好,最后再次使用 pyenv install 即可。 不过我试了几次,好像有时候它并没有识别到这个缓存? 安装 pyenv-virtualenv 插件 git clone https://github.com/pyenv/pyenv-virtualenv.git /usr/local/.pyenv/plugins

virtualenv 的解决方案是为每个项目创建一个独立的虚拟环境,在每个虚拟环境中安装的库,对其他虚拟环境完全无影响。所以就可以在一台机器的不同虚拟环境中分别安装同一个库的不同版本。如果想详细了解其使用方法,请自行查阅。 升级 pyenv

使用 pyenv-update 插件git clone https://github.com/pyenv/pyenv-update.git /usr/local/.pyenv/plugins/pyenv-update

要更新 pyenv 和插件(包括 pyenv-update 本身),只需输入: pyenv update使用 Git 升级安装

要升级到 pyenv 的最新开发版本,请使用:git pullcd /usr/local/.pyenv

git pull

要升级到 Pyenv 的特定版本,请查看相应的标签:cd /usr/local/.pyenv

git fetch

git tag

git checkout v0.1.0

完全卸载 pyenv 直接删除 pyenv 的安装目录,然后清除 /etc/profile 文件中的相关配置即可。sudo rm -rf /usr/local/.pyenv

3.4 安装 rbenv

好吧,在我完成以下安装操作后,写这篇 blog 时才发现有 ruby-China… 这里放上地址 rbenv使用指南(ruby-china.org),应该有更快的安装方式和镜像,自行选择尝试。这里还有一个 rbenv-cn 的 gitee 项目。 真是服了,需要的时候就是没搜出来 cn 版,费劲安装完了它又出来了。。。

第一步同样是登录普通用户安装依赖环境sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev

克隆 rbenv 源码。但只要是在国内的服务器,不要妄图使用 culr 的下载安装程序来自动安装,不会成功的。git clone https://github.com/rbenv/rbenv.git /usr/local/.rbenv

将环境变量添加到全局,并使之立即生效 vim /etc/profile 然后将一下内容添加到最后即可。# for rbenv

export RBENV_ROOT="/usr/local/.rbenv"

export PATH="$RBENV_ROOT/bin:$PATH"

export PATH="$RBENV_ROOT/plugins/ruby-build/bin:$PATH"

eval "$(rbenv init -)"

然后使用命令使之立即生效,pyenv 就可以使用了:source /etc/profilerbenv 常用命令 基本和 pyenv 相同,参考上述 pyevn 常用命令即可可能遇到的问题 如果在安装 ruby 过程中,没有 rbenv install 命令,那么需要安装以下 ruby-build 插件 git clone https://github.com/rbenv/ruby-build.git /usr/local/.rbenv/plugins/ruby-build 如果同样遇到下载速度非常慢的情况,同 pyenv 一样,多试几次等一等就好了。或者尝试类似方法的离线安装。 下载后缀为 .tar.gz 的 ruby 源文件,将其放置在 /.rbenv/cache 目录中再次尝试安装。升级 rbenv 使用 Git 升级安装,要升级到 pyenv 的最新开发版本,请使用:git pullcd /usr/local/.rbenv

git pull

完全卸载 rbenv 直接删除 rbenv 的安装目录,然后清除 /etc/profile 文件中的相关配置即可。sudo rm -rf /usr/local/.rbenv

4. 其他踩坑点(重点避坑)

如果你上面没有听我的话,安装 pyenv、rbenv 或其他软件时,没有切换到普通用户去安装,而是一不小心用默认登录的 root 用户安装到 /usr/local 目录下了,此时该文件夹的用户及组用命令 ls -l 查看就还是 root,用以下命令将其改为普通用户即可。 查看所属用户。这里 ubuntu 是我的普通用户。 ls -l 如果是 root 组,用如下命令即可变更为普通用户组。 chown 用户名 文件名 -R

chgrp 用户名 文件名 -R

-R 表示递归目录下所有文件 如果普通用户在使用过程中遇到 command not found 或者找不到 PATH 的情况,在 /home/your_new_user 目录下的配置文件 .bashrc 中添加如下一句命令,让其自行加载全局配置文件即可。 source /etc/profile 最后再提一次,一定不要安装在 /home/user/ 和 /root/ 目录下面去。。。

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: