首先说一下哈,无论什么版本,其实安装方式都是一样的,安装途中报错,只要耐心的去找错误的地方是什么,比如缺少依赖,我们就去下载依赖,我也是安装了无数遍,中途搞得我崩溃不行,特此写下此教程,让我们不是专业的运维也能顺畅的安装不报错,能运行就好,不能把时间浪费在安装上~。~
安装Python
centos7 自带有 python,但是却是 python2 版本的 python,如果你想安装个python3怎么办呢?
因为 yum 源中并没有现成的 python3 程序,所以必须要自己手动编译安装。
按照步骤安装:centos7 上轻松的装上 python3 的,经过了不下30次的安装经验终于写得如下秘籍!
1.解决依赖关系
# 确保系统中已经有了所有必要的依赖包否则会报错:
yum -y groupinstall development
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
yum install libffi-devel -y
# 说明:以上三个包很重要,如果没有提前安装就会安装失败。
# 查看本机上是否安装使用命令:“yum list | grep 包名”和“yum grouplist”进行查看。
2.知道目前centos系统中python2的路径信息
[root@root ~]# whereis python
# 可以知道我们的python在 /usr/bin目录中
python: /usr/bin/python2.7 /usr/bin/python /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz
# 可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向python3,然后python2指向python2.7,那么两个版本的python就能共存了。
[root@root ~]# cd /usr/bin/
[root@root bin]# ll python*
lrwxrwxrwx. 1 root root 7 2月 7 09:30 python -> python2
lrwxrwxrwx. 1 root root 9 2月 7 09:30 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 8月 4 2017 python2.7
3.安装pip/wget(默认情况下是没有安装的)
# 运行这个命令添加epel扩展源
yum -y install epel-release
# 安装pip
yum install python-pip
# 用pip装wget
pip install wget
4.下载python3
本次教程是通过wget下载,也可通过在python官网下载源码格式的安装包,然后通过winscp或者xftp上传到你的服务器。
# 本次下载的是3.6.4版本,如果希望下载指定版本可查找下载地址进行更换
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
# 解压
xz -d Python-3.6.4.tar.xz
tar -xf Python-3.6.4.tar
5. 手动编译
进入解压后的目录,依次执行下面命令进行
./configure prefix=/usr/local/python3
make && make install
# 如果最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录
6. 添加python和pip软链接
# 将原来的链接备份
mv /usr/bin/python /usr/bin/python.bak
# 添加python3的软链接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
# 测试是否安装成功了
python -V
# 找到python3的pip3
find / -name pip3
# 我的显示:/usr/local/python3/bin/
# 创建软连接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
# 验证一下
pip3 -V
7. 更改yum配置
# 因为其要用到python2才能执行,否则会导致yum不能正常使用
vi /usr/bin/yum
把#! /usr/bin/python修改为#! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把#! /usr/bin/python 修改为#! /usr/bin/python2
8. 乌班图16.04安装
参考一:https://blog.csdn.net/u014775723/article/details/85213793?depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromBaidu-1
参考二:https://blog.sbot.io/articles/47/Ubuntu16.04-18.04-%E5%AE%89%E8%A3%85-Python-3.7.x
需要提前那装好环境,未安装在进行sudo make install 报错
在按python3编译时出现zipimport.ZipImportError: can't decompress data; zlib not available
Makefile:1079: recipe for target 'install' failed
make: *** [install] Error 1
这样的错误解决方法很简单即:
sudo apt-get install zlib1g-dev 安装zlib1g即可解决
扩展:如果想在裸机上装centos、或者乌班图等推荐大家使用这个U盘启动方式进行安装,rufus.ie/,此工具使用非常的完美…
安装虚拟环境
1.创建虚拟环境命令
方式一:
# 安装virtualenv后创建虚拟环境找不到创建一下软连接
先安装: sudo pip3 install virtualenv
1.首先找到virtualenv的安装路径
find / -name virtualenv
我的是在:
/usr/local/python3/bin/virtualenv
那么这样子就可以直接去通过原可执行文件创建虚拟
/usr/local/python3/bin/virtualenv env
创建软连接,这样可以直接使用virtualenv命令了
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
方式二:sudo pip3 install virtualenvwrapper 或 sudo pip3 install virtualenvwrapper (为了命令更好用)
2. 查找virtualenvwrapper所在的路径
# 记得加.sh要不然查到出来的路径不正确
whereis virtualenvwrapper.sh或 find / -name virtualenvwrapper.sh
3. 创建一个管理所有virtualenvwrapper的存放文件夹
# 一般建议在home目录下
例:mkdir /home/rock/.virtualenvs
4. 查找 .bashrc 配置文件所在路径
# 一般在/root/.bashrc 添加以下两句:
export WORKON_HOME=路径/.virtualenvs
source virtualenvwrapper.sh的存放路径
# 保存退出,并执行(激活更新配置)
source 路径/.bashrc
例:
export WORKON_HOME=/home/rock/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
# 配置好后要执行以下命令才生效:
source .bashrc
5. 创建、退出、激活虚拟环境
虚拟环境的搭建分为两种方式:一种是传统创建,一种是官方推荐使用的,选择其中一种即可。
- 传统创建虚拟环境操作
# 创建新虚拟环境:mkvirtualenv 名称
例:mkvirtualenv python001
退出环境:deactivate
# 如果想指定一个python3来运行的虚拟环境
mkvirtualenv python002 -p python路径
例:mkvirtualenv python002 -p /usr/bin/python3
# 删除虚拟环境
命令:rmvirtualenv [venvname]
# 快速激活虚拟环境
workon 虚拟环境名称
例:workon python001
- 官方推荐pipenv创建虚拟环境
# 创建一个文件目录
mkdir 文件名
# 安装pipenv
pip install pipenv
# 安装虚拟环境中的各种包
pipenv install 包名
# 卸载包
pipenv uninstall 包名
# 启动进入虚拟环境
pipenv shell
# 查看当前虚拟环境路径
pipenv --venv
# 查看包的依赖关系
pipenv graph
# 退出虚拟环境
exit
6. pip安装指定镜像源
- 安装pip
# 创建软连接
# 需要先查询一下 pip3的位置
# 接着默认pip也是需要修改的,可以通过find / -name 'pip3'找到pip3的位置,同样的,加一条软链到bin里面:
# /usr/local/bin/pip3是python3.7安装路径,/usr/bin/pip是要链接的文件
pip3: /usr/local/bin/pip3 /usr/local/bin/pip3.7 # 第一个就是
ln -s /usr/local/bin/pip3 /usr/bin/pip
# 输入pip -V 如果能显示pip版本(特指Python3.7.0的pip),则安装成功
由于国内链接国外的网络比较慢,第一种方式在安装的时候指定镜像源,第二种方式直接更改镜像源
# 每次安装包时指定镜像源
pip install -i 国内镜像地址 包名
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
# 直接更换镜像源
pip验证
# pip -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
为提高pip的安装速度,使用国内的pip源,这里更新pip源为豆瓣源:
mkdir ~/.pip/
vi ~/.pip/pip.conf
写入:复制以下内容保存
[global]
index-url=http://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com
虚拟环境迁移(无网/有网)
在实际工作中,我们会有这样的事情,我们本地开发完,需要上传到服务器
-
如果有网的情况下,非常容易搬迁
- 只需要进入所要迁移的虚拟环境中进行,pip install freeze > requirements.txt
- 在服务器创建虚拟环境然后 pip install requirements.txt
-
无网状态下,参考了许多网上的资料,许多事不可行方案,在此我实验多次证明以下结果
1.centos或乌班图同系统,且创建虚拟环境和安装python、虚拟环境、pip路径一致,直接从原虚拟环境文件夹压缩传输到目标机器即可使用
2.如果安装python、pip路径不一致,直接拷贝虚拟环境到目标机器上后修改如下路径: 包已经创建好的venv,并拷贝到目标环境解压
1.venv/bin/下修改activate文件中参数,修改我当前存放的虚拟环境路径 VIRTUAL_ENV="your new venv path"2./venv/bin/下修改pip中 当前虚拟环境的python路径,修改成当前机器的pip路径 #!/xx/venv/bin/python3./venv/bin/修修python 的版本路径,修改成当前机器的python路径 /root/venv/bin/python -
离线安装方式(原机器保证有网络):
# 先激活本地虚拟环境 source venv/bivn/activate # 导出包版本文件 pip freeze > requirements.txt # 导出后查看requirements.txt文本中,去掉一些依赖包名称,比如我安装Flask, # 但是Flask又给我安装了其他包,这样导出包信息非常多,删除依赖包名称,只保留自己用到的包名即可, # 因为在安装的过程中,你安装的包会自动安装所需依赖,如果我们不删除掉依赖包,很可能下载不成功 # 在开发环境先下载好离线包: pip download -d your_offline_packages -r requirements.txt 打包your_offline_packages,并copy到目标机器环境在目标环境创建新的virtualenv环境并激活:
# 创建虚拟环境 virtualenv venv # 选择虚拟环境 source venv/bivn/activate批量安装离线安装包
pip install --no-index --find-links=your_offline_packages -r requirements.txt
安装MySQL
本次安装的为5.7版本,若安装其他版本请更换链接
1.CentOS 7已经将默认集成mariadb而不是mysql,需要卸载
yum remove mariadb-libs.x86_64
cd tmp
2.下载mysql源安装包
wget https://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
3.安装mysql源
# 输入yes
yum localinstall mysql57-community-release-el7-8.noarch.rpm
# yes yes 如果安装太快少输入yes 那就重新执行此命令
yum install mysql-community-server
4.启动服务
service mysqld start
ps -ef|grep mysql
5.查看默认密码
# 在/var/log/mysqld.log文件中给root生成了一个默认密码
cat /var/log/mysqld.log | grep "password"
6.mysql修改密码(可用默认可修改,根据情况而定)
shell> mysql -uroot -p
# 查看密码策略
mysql> show variables like '%password%';
validate_password_policy:密码策略,默认为MEDIUM策略
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度
validate_password_mixed_case_count:大小写字符长度,至少1个
validate_password_number_count :数字至少1个
validate_password_special_char_count:特殊字符至少1个
上述参数是默认策略MEDIUM的密码检查规则。
# 根据策略修改密码
mysql> set password for 'root'@'localhost'=password('新密码这里写入');
7.配置默认编码为utf8(可改可不改)
修改/etc/my.cnf配置文件,
vi /etc/my.cnf
在[mysqld]下添加编码配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
安装Redis
安装redis没有特别难的地方,本次以4.0为例,其他版本也一样,按照步骤来就能放心安装,我都是一步步这样过来的。
1.下载安装、解压包
wget http://download.redis.io/releases/redis-4.0.13.tar.gz
tar xzf redis-x.x.x.tar.gz
2. 移动,放到usr/local⽬录下
sudo mv ./redis-x.x.x /usr/local/redis/
3. make生成
# 进入redis目录
cd /usr/local/redis/redis-x.x.x
# 编译
sudo make
# 成功后会提示
# Hint It's a good idea to run 'make test' ;)
# make[1]:Leaving directory '/usr/local/redis/src'
4.测试 这段运⾏时间会较⻓
# 进入redis.x.x.x/src文件中运行
sudo make test
# 成功提示
# Cleanup:may take some time... OK
# make[1]:Leaving directory '/usr/local/redis/src'
# redis 的make test出现异常解决
在redis进行maketest时候会出现一系列的异常,有如下解决方案:
You need tcl 8.5 or newer in order to run the Redis test
解决方案:前面已经安装了tcl;
[exception]: Executing test client: NOREPLICAS Not enough good slaves to write..
NOREPLICAS Not enough good slaves to write.
解决方案:vim tests/integration/replication-2.tcl
将其中的第一个if里面的after 1000修改成after 10000,延长测试时间
[err]: Slave should be able to synchronize with the master in tests/integration/replication-psync.tcl
Replication not started.
解决方案:重新make test一次就好了;
[err]: Test replication partial resync: ok psync (diskless: yes, reconnect: 1) in tests/integration/replication-psync.tcl
解决方案:vim tests/integration/replication-psync.tcl
将其中的after 100修改成after 1000就好了。
# 这里可能会报错 解决办法
cd src && make test
make[1]: 进入目录“/usr/local/redis/redis-4.0.13/src”
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] 错误 1
make[1]: 离开目录“/usr/local/redis/redis-4.0.13/src”
make: *** [test] 错误 2
解决:
方法一:
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/
cd /usr/local/tcl8.6.1/unix/
sudo ./configure
sudo make
sudo make install
————————————————
方法二:
yum install tcl
5. 安装
# 将redis的命令安装到/usr/local/bin/⽬录
sudo make install
6. 查看
cd /usr/local/bin
ls -all 进入目录查看
7. 配置⽂件,移动到/etc/⽬录下
# 配置文件 拷贝到 配置目录
sudo cp /usr/local/redis/redis.conf /etc/redis/ /usr/local/redis/redis.conf
8.开机自启动
# 让redis以daemon进程运行
vim /etc/redis/redis.conf
daemonize yes        让redis以daemon进程运行
pidfile /var/run/redis_6379.pid 设置redis的pid文件位置(根据情况改)
port 6379          设置redis的监听端口号(根据情况改)
dir /var/redis/6379     设置持久化文件的存储位置(根据情况改)
9.启动redis服务
redis-server /etc/redis/redis.conf
10.启动客户端redis-cli
redis-cli,进入交互式命令行
redis-cli SHUTDOWN,连接本机的6379端口停止redis进程
redis-cli -h 127.0.0.1 -p 6379 SHUTDOWN,制定要连接的ip和端口号
redis-cli PING,ping redis的端口,看是否正常
安装Java
本次安装的是1.8版本,需要通过官网提前下载到本地
1.先确认以前有没有安装过
rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj
如果没有输入信息表示没有安装。
如果安装可以使用rpm -qa | grep java | xargs rpm -e --nodeps 批量卸载所有带有Java的文件 这句命令的关键字是java
2.首先检索包含java的列表
yum list java*
3.检索1.8的列表
yum list java-1.8*
4.安装1.8.0的所有文件
yum install java-1.8.0-openjdk* -y
5.使用命令检查是否安装成功
[root@localhost java]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
6.查询java安装路径
[root@localhost java]# which java
/usr/bin/java
[root@localhost java]# ls -lrt /usr/bin/java
lrwxrwxrwx 1 root root 22 5月 12 15:32 /usr/bin/java -> /etc/alternatives/java
编辑不易,如果有帮助,请点个赞,生活不易,是你给我动力继续坚持!
推荐阿里云入门机器才100多,平时练手折腾,妈妈再也不用担心我在本地虚拟机跑导致电脑卡顿了~
好了各位,以上就是这篇文章的全部内容了,能看到这里人啊,都是人才。
如果这个文章写得还不错,觉得「王采臣」我有点东西的话 求点赞👍求关注❤️求分享👥 对耿男我来说真的非常有用!!!
白嫖不好,创作不易,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
王采臣 | 文 【原创】
如果本篇博客有任何错误,请批评指教,不胜感激 !
更多精彩关注微信公众号,第一时间更新~

福利! 上边命令安装是否感觉很繁琐,不过小编考虑到到了一些小白,我编写了shell脚本,不用复制命令,一键安装python+虚拟环境,公众号回复"安装python",即可