开源软件安装集锦

本文主要介绍常用的各类开源软件的安装,持续更新。。因为经常需要搭建各类服务,安装步骤背下来是不可能的了,这辈子都不可能了。所以开个博文记录下。
目前主要涉及的软件有:python、nodejs、nextcloud、jupyter

说明:所有操作均在centos7.x版本完成,其他发行版无研究。

1. 通过pyenv安装python

1. 安装依赖软件

1
[root@localhost ~]#  yum install git  install gcc make patch gdbm-devel openssl-devel  sqlite-devel  readline-devel zlib-devel bzip2-devel -y

2.创建python用户

1
2
[root@localhost ~]# useradd python
[root@localhost ~]# su python

3. 安装pyenv

1
2
3
4
5
6
7
8
9
#安装pyenv
[python@localhost ~]$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
#安装完成后在~/.bash_profile文件最后追加相关环境变量
export PATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
#刷新配置或者重新开一个终端
[python@localhost ~]$ source ~/.bash_profile
#详细配置参考https://github.com/pyenv/pyenv

4. 安装指定版本的python (在线)

1
2
3
4
5
6
7
8
9
10
11
#查看可以安装的版本
[python@localhost ~]$ pyenv install --list

#查看当前环境安装了的版本
[python@localhost ~]$ pyenv versions

#安装指定的版本
[python@localhost ~]$ pyenv install 3.6.3 -v

#更新pyenv及其插件
[python@localhost ~]$ pyenv update

5. 设置指定的python版本

三种方式:

  1. global #:#后为指定的版本号,指定全局生效,普通用户指定就是普通用户全局生效,root用户指定就是普通用户生效。(影响范围最大)
  2. shell #:指定只在当前shell生效的权限(影响范围最小)
  3. local #:指定文件夹的权限(建议采用方式)
1
[python@localhost ~]$ pyenv local 3.6.3

6. 安装指定版本的python(离线)

但由于文件很大,通常下载需要很久。
如果网速不好,建议的做法是,先执行以上命令然后马上中断安装,这样就知道 pyenv 要下载的文件的链接。然后用户自己用其他更快的方式(比如wget、迅雷等等)从该链接中下载安装文件,并将安装文件移动到 ~/.pyenv/cache目录。
最后执行pyenv install命令。

7. python包管理器

pip是python的包管理器。一般国内机器使用官方源比较慢,可以使用国内的镜像。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#更新pip默认源
[python@localhost ~]$ mkdir ~/.pip
[python@localhost ~]$ vim ~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com

##或者可以使用豆瓣的镜像:
[global]
index-url = http://pypi.douban.com/simple

[install]
trusted-host=pypi.douban.com

pip相关命令:

1
2
3
4
5
6
7
8
9
10
11
12
#查看pip版本
[python@localhost py]$ pip -V
#此处如果出现以下错误,说明需要配置环境,参考第5点。
[python@localhost ~]$ pip3 -V
pyenv: pip3: command not found

The `pip3` command exists in these Python versions:
3.6.3

#安装python的包
[python@localhost py]$ pip install pkgname
## 安装包的时候可以检测前面的源是否配置成功

2. 通过nvm安装nodejs

1.安装node版本控制器nvm

1
2
[root@localhost ~]# wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
#详细配置可参考官网

2. nvm安装nodejs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#版本查看
[root@localhost ~]# nvm -v

#安装当前最新的稳定版
[root@localhost ~]# nvm install stable

#安装指定版本
[root@localhost ~]# nvm install 8.9.1

#查看已经安装的版本
[root@localhost ~]# nvm ls
default -> v8.2.0 #当前环境的版本
-> v8.2.0 #-> 指向的就是正在使用的版本
#切换node的版本
[root@localhost ~]# nvm use 8.9.1
Now using node v8.9.1 (npm v5.5.1)

#指定系统默认的版本
[root@localhost ~]# nvm alias default 8.9.1

3. 通过docker安装nextcloud

1. 安装docker

docker是当下流行的容器技术

1
2
3
4
#安装docker
[root@localhost ~]# yum install -y docker
#启动docker
[root@localhost ~]# systemctl start docker

为了更加方便进入容器,可以在~/.bashrc文件末尾追加以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#the implementation refs from https://github.com/jpetazzo/nsenter/blob/master/docker-enter
function docker-enter() {
#if [ -e $(dirname "$0")/nsenter ]; then
#Change for centos bash running
if [ -e $(dirname '$0')/nsenter ]; then
# with boot2docker, nsenter is not in the PATH but it is in the same folder
NSENTER=$(dirname "$0")/nsenter
else
# if nsenter has already been installed with path notified, here will be clarified
NSENTER=$(which nsenter)
#NSENTER=nsenter
fi
[ -z "$NSENTER" ] && echo "WARN Cannot find nsenter" && return

if [ -z "$1" ]; then
echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]"
echo ""
echo "Enters the Docker CONTAINER and executes the specified COMMAND."
echo "If COMMAND is not specified, runs an interactive shell in CONTAINER."
else
PID=$(sudo docker inspect --format "{{.State.Pid}}" "$1")
if [ -z "$PID" ]; then
echo "WARN Cannot find the given container"
return
fi
shift

OPTS="--target $PID --mount --uts --ipc --net --pid"

if [ -z "$1" ]; then
# No command given.
# Use su to clear all host environment variables except for TERM,
# initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH,
# and start a login shell.
#sudo $NSENTER "$OPTS" su - root
sudo $NSENTER --target $PID --mount --uts --ipc --net --pid su - root
else
# Use env to clear all host environment variables.
sudo $NSENTER --target $PID --mount --uts --ipc --net --pid env -i $@
fi
fi
}

##项目开源地址:https://github.com/jpetazzo/nsenter/blob/master/docker-enter

docker-enter ‘CONTAINER ID’ 进入指定的容器,exit退出

2. 安装nextcloud

nextcloud是新一代私有网盘

1
2
3
4
5
#安装nextcloud
~]# docker run -d -p 11211:80 -v nextcloud:/var/www/html registry.cn-hangzhou.aliyuncs.com/mykernel/nextcloud:v1
# -p 11211 是本地端口,需要开放机器的防火墙
# -v nextcloud 是本地的一个目录,主要是为了让存储的文件持久化
# registry.cn-hangzhou.aliyuncs.com/mykernel/nextcloud:v1 docker官方的镜像速度太慢,是我通过阿里云做的一个中转镜像

3. 使用nextcloud

访问地址:ip+11211;
进去后,根据配置设置好相关的账号密码。
下载客户端登录,就可以实现实时同步了。。
这里需要说明的是如何传文件:

  1. 通过客户端传文件
    任何一个客户端传入数据,其他登录的客户端都可以自动同步过来。
  2. 在linux系统后台传文件
    此处通过直接往后台传文件,在各个客户端是看不到这个文件的。
    所以需要通过nextcloud自带的扩展功能实现: External storage support,
    具体操作可以百度。

4. 备份

我们通过docker -v 命令将容器内的卷持久化了。这就可以对数据进行备份,从而更加确保其安全性。
先在客户端任意上传一个文件,我此处上传一个名字叫aaabbb的文件夹;
然后通过find命令在linux上查找这个文件,就可以定位这个持久卷的位置了。

1
2
[root@iZpo45bh60h6bsZ /]# find / -name aaabbb
/var/lib/docker/volumes/nextcloud/_data/data/mykernel/files/aaabbb

找到之后我们可以使用若干种办法将其备份,我就不一一赘述了。

4. 通过docker安装jupyter

jupyter是一个基于浏览器的python数据分析工具,使用起来非常方便,具有极强的交互方式和富文本的展示效果。能实现自动补全、自动缩进、支持shell、增加函数(%%time)等功能。

1. docker安装jupyter

a.pull镜像

1
[root@iZpo45bh60h6bsZ /]# docker pull tensorflow/tensorflow

b.run 镜像,生成容器实例,第一次进入会执行 /run_jupyter.sh,会有 token 让你进入 localhost:8888 页面是可以输入并登录

1
[root@iZpo45bh60h6bsZ /]# docker run -it -p 8888:8888 tensorflow/tensorflow

c. 进入容器修改jupyter的默认密码(参考前面进入容器的办法)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@iZpo45bh60h6bsZ /] vim ~/.jupyter/jupyter_notebook_config.py


# 修改里面的 password 配置,我这里注释掉了使用环境变量 PASSWORD,直接明文密码 mykernel,password()函数是个 hash函数


# sets a password if PASSWORD is set in the environment


#if 'PASSWORD' in os.environ:

c.NotebookApp.password = passwd("mykernel")

# del os.environ['PASSWORD']

2. jupyter使用

a. windows访问
jupyter –ip=0.0.0.0 –no-browser
http://:8888
此时笔记所在目录为–notebook-dir=指定的目录,或运行命令所在目录

b. 基本命令
先在页面上按下esc键
dd:删除选择的cell (cell就是看到的框)
m:进入markdown编辑模式
crtl+回车:运行该框中的代码,不开启新行
alt+回车:运行该框中的代码,开启新行
数字(1-6):直接设置md的标题格式
h:查看帮助
我一般就用到这几个命令了。

---------------- 谢谢光临 ----------------

本文标题:开源软件安装集锦

文章作者:pxrux

发布时间:2018年09月20日 - 14:09

最后更新:2018年10月01日 - 14:10

原始链接:http://www.mykernel.cn/python-install-1.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%