Linux软件包安装

1.1rpm包管理

软件包管理器

1.1.1光盘挂载

光盘中带有很多软件包,光盘需要使用的话,要先挂载

  1. 1.确认光盘是连接状态
  2. 2.mount /dev/cdrom /mnt cdrom就是光驱
  3. 挂载完后,内容就到mnt中了。
  4. cd /mnt/Packages
  5. 所有的软件包都放在 Packages
  6. 基础包建议用光盘的(兼容性好),第三方通过网络源

1.1.2安装rpm包
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm普通安装,装了就不再安装
rpm -Uvh vsftpd-3.0.2-22.el7.x86_64.rpm更新安装,有会更新

缺点:
一个软件安装好后,分散到操作系统各个部分,  其中有文件损坏时,会卸载不干净

1.1.3卸载rpm
rpm -e vsftpd-3.0.2-22.el7.x86_64

1.1.4rpm包的查询
rpm -q vsftpd   查看是否安装
rpm -qa |grep vsf  qa表示查询所有
which vim  查看命令具体路径
rpm -qf /bin/vim  查看命令来自于哪个软件包

1.1.5依赖关系

安装某软件时,会有依赖关系,比如安装A,一定要安装B

但是当互相依赖时,就很头疼

rpm  -ivh  a b c d e f  安装所有的软件, 版本得匹配!

1.2yum

解决了rpm互相依赖的问题,它会将所有依赖都装上,自动检测版本

默认是cenos的官方源

1.2.1使用aliyun yum源

http://mirrors.aliyun.com/

Base源:基础源

EPEL源:扩展源

cd /etc/yum.repos.d/
1.将默认的官方源移到别的地方
mkdir test
mv *.repo test/
2.获取base源
wget http://mirrors.aliyun.com/repo/Centos-7.repo
3.安装EPEL源
yum install -y epel-release

1.2.2使用yum安装软件
yum install -y openssl openssl-devel  加-y不提示

1.2.3软件包查询及组安装
yum list  安装未安装都列出来
yum list |grep python
yum grouplist 软件包组安装
yum groupinstall "Development Tools"

1.2.4卸载软件包
yum remove

1.2.5优化yum源

从本地光盘先下载

yum源的配置文件必须.repo结尾

1.本地镜像yum源(光盘挂载到/mnt下)—————-依赖光盘

1.先将原来的源 备份到别的地方
mkdir ali
mv *.repo ali
2.vim local.repo
[local]
name=localios
baseurl=file:///mnt         本地的file://  /mnt是路径
gpgcheck=0                  软件包的校验关闭

3.yum clean all  清除缓存

2.局域网yum源(ftp)—————需要单独的服务器,yum源服务器

1.安装ftp软件
yum install -y vsftpd
2.启动ftp服务
systemctl start vsftpd
systemctl enable vsftpd   开机自启动

3.创建站点目录,并将光盘中所有软件拷贝到其中
mkdir /var/ftp/pub/centos7
cp -a /mnt/* /var/ftp/pub/centos7

4.生成ftp站点的yum源配置文件
cd /etc/yum.repos.d/
mv local.reps test/   将本地的yum源挪走
vim ftp.repo   新建一个
[ftp]
name=centos7
baseurl=ftp://10.0.0.100/pub/centos7  后面跟路径
gpgcheck=0

5.安装软件测试
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++  openssl-devel zlib zlib-devel -y

1.3源码包应用

1.3.1解压
unzip  xxx.zip  需要先安装  yum install -y zip
tar xf  xxx.tar
mount -o loop xxx.iso  /test     iso  必须先挂载才能使用

1.3.2源码包安装

注:python是用c和c+开发的,必须确认操作系统中有gcc

1.Python3.6源码包安装

yum install gcc* -y
yum install -y openssl*   访问https需要
1.解压上传的源码包
tar xf Python-3.6.1.tar.xz
2.进入目录
cd Python-3.6.1/
3.配置
./configure  检测系统环境是否满足安装,配置一些参数
源码包的好处是可以在这一步进行定制
会生成一个Makefile.pre文件

4.make  批量编译c的源码 生成二进制
5.make install 二进制的  该拷贝的拷贝,授权的授权

2.mysql源码包安装,不同于其他源码包安装 (了解)

cmake   不是./configure    
make 
make install

3.redis源码包安装

解压
make 即可

修改redis的环境变量

vim /etc/profile     系统主环境变量路径
最后一行加入
export PATH=/opt/redis-3.2.10/src:$PATH

生效配置
source /etc/profile

redis-server &  启动服务

4.python连接redis

unzip redis-py-master.zip 
cd redis-py-master
python3 setup.py install

测试是否连接上

python3
>>>import redis
>>>r = redis.StrictRedis(host='localhost', port=6379)
>>>r.set('name', 'test')
True
>>>r.get('name')
'test'

1.4二进制包

1.4.1mysql5.7.20安装
解压
tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
制作软链接
ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql

1.4.2编辑环境变量
vim /etc/profile
添加下面一行:
export PATH=/opt/mysql/bin:$PATH

生效配置:
source /etc/profile

1.4.3卸载自带mariadb
yum remove mariadb-libs

1.4.4生成配置文件
vim /etc/my.cnf

[mysqld]
basedir=/opt/mysql
datadir=/opt/mysql/data
socket=/tmp/mysql.sock
user=mysql
log_error=/var/log/mysql.log
log_bin=/opt/mysql/data/mysql-bin
server_id=100
[mysql]
socket=/tmp/mysql.sock

1.4.5创建用户和数据目录,并授权
useradd mysql

mkdir /opt/mysql/data
chown -R mysql.mysql /opt/mysql

touch /var/log/mysql.log 
chown -R mysql.mysql /var/log/mysql.log

1.4.6初始化数据
mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql

1.4.7启动mysql
cd /opt/mysql/support-files
./mysql.server start   前面需要带上./

路径名太长,我们可以这样。。。
cp mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld restart

扩展:使用systemctl管理mysql
vim /etc/systemd/system/mysqld.service

Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000


systemctl restart mysqld   就可以启动了

1.4.8测试Python3连接mysql
创建mysql链接用户
grant all on *.* to root@'10.0.0.%' identified by '123';
create database bbs charset utf8;

python连接
pip3 install pymysql

vim testmysql.py

#!/usr/bin/python3
import pymysql
db = pymysql.connect("10.0.0.100","root","123","bbs" )
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print ("Database version : %s " % data)
db.close()

python3  testmysql.py