本文主要介绍常用的各类开源软件的安装,持续更新。。因为经常需要搭建各类服务,安装步骤背下来是不可能的了,这辈子都不可能了。所以开个博文记录下。 目前主要涉及的软件有:python、nodejs、nextcloud、jupyter
bash[root@localhost ~]# yum install git install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel -y
bash[root@localhost ~]# useradd python
[root@localhost ~]# su python
bash#安装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
bash#查看可以安装的版本
[python@localhost ~]$ pyenv install --list
#查看当前环境安装了的版本
[python@localhost ~]$ pyenv versions
#安装指定的版本
[python@localhost ~]$ pyenv install 3.6.3 -v
#更新pyenv及其插件
[python@localhost ~]$ pyenv update
三种方式:
[python@localhost ~]$ pyenv local 3.6.3
但由于文件很大,通常下载需要很久。 如果网速不好,建议的做法是,先执行以上命令然后马上中断安装,这样就知道 pyenv 要下载的文件的链接。然后用户自己用其他更快的方式(比如wget、迅雷等等)从该链接中下载安装文件,并将安装文件移动到 ~/.pyenv/cache目录。 最后执行pyenv install命令。
pip是python的包管理器。一般国内机器使用官方源比较慢,可以使用国内的镜像。
bash#更新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相关命令:
bash#查看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
## 安装包的时候可以检测前面的源是否配置成功
bash[root@localhost ~]# wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
#详细配置可参考官网
bash#版本查看
[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
docker是当下流行的容器技术
bash#安装docker
[root@localhost ~]# yum install -y docker
#启动docker
[root@localhost ~]# systemctl start docker
为了更加方便进入容器,可以在~/.bashrc文件末尾追加以下代码:
bash#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退出
nextcloud是新一代私有网盘
bash#安装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官方的镜像速度太慢,是我通过阿里云做的一个中转镜像
访问地址:ip+11211; 进去后,根据配置设置好相关的账号密码。 下载客户端登录,就可以实现实时同步了。。 这里需要说明的是如何传文件:
我们通过docker -v 命令将容器内的卷持久化了。这就可以对数据进行备份,从而更加确保其安全性。 先在客户端任意上传一个文件,我此处上传一个名字叫aaabbb的文件夹; 然后通过find命令在linux上查找这个文件,就可以定位这个持久卷的位置了。
bash[root@iZpo45bh60h6bsZ /]# find / -name aaabbb
/var/lib/docker/volumes/nextcloud/_data/data/mykernel/files/aaabbb
找到之后我们可以使用若干种办法将其备份,我就不一一赘述了。
jupyter是一个基于浏览器的python数据分析工具,使用起来非常方便,具有极强的交互方式和富文本的展示效果。能实现自动补全、自动缩进、支持shell、增加函数(%%time)等功能。
a.pull镜像
bash[root@iZpo45bh60h6bsZ /]# docker pull tensorflow/tensorflow
b.run 镜像,生成容器实例,第一次进入会执行 /run_jupyter.sh,会有 token 让你进入 localhost:8888 页面是可以输入并登录
bash[root@iZpo45bh60h6bsZ /]# docker run -it -p 8888:8888 tensorflow/tensorflow
c. 进入容器修改jupyter的默认密码(参考前面进入容器的办法)
bash[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']
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:查看帮助 我一般就用到这几个命令了。
本文作者:mykernel
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!