一、Red Hat 系列
Redhat、Centos、Fedora等
1. 手动安装
1.1 rpm命令管理
-
RPM包命令原则
httpd-2.2.15-15.el6.centos.1.i686.rpm httpd: 软件包名 2.2.15: 软件版本 15: 软件发布的次数 el6.centos: 适合的Linux平台 i686: 适合的硬件平台 rpm: rmp包扩展名
-
RPM包依赖性
- 树形依赖:a->b->c
- 环形依赖:a->b->c->a
- 模块依赖:模块依赖(以.so.数字 结尾的文件)查询网站:www.rpmfind.net
-
常用命令
# 1. RPM包安装 rpm -ivh 包名 # -i (install): 安装 # -v (verbose): 显示安装信息 # -h (hash): 显示进度 # --nodeps: 不检测依赖性 rpm -ivh mysql-connector-odbc-5.1.1r1144-7.el6.i686.rpm # 2. RPM包升级 rmp -Uvh 包名 # -U: 升级 rpm -Uvh mysql-connector-odbc-5.1.1r1144-7.el6.i686.rpm # 3. 卸载 rmp -e 包名 # -e (erase): 卸载 # --nodeps: 不检查依赖性 rmp -e httpd # 4. 查询包是否安装 rmp -q 包名 # -q (query): 查询 # -a (all):所有 rmp -q httpd # 查询所有已经安装的rpm包 rmp -qa # 5. 查询软件包详细信息 rmp -qi 包名 # -i (information):查询软件信息 # -p (package):查询未安装包信息 rmp -qi httpd rmp -qp mysql-connector-odbc-5.1.1r1144-7.el6.i686.rpm # 6. 查询包中文件安装位置 rmp -ql 包名 # -l (list): 列表 rmp -ql httpd rmp -qpl mysql-connector-odbc-5.1.1r1144-7.el6.i686.rpm # 7. 查询系统文件属于哪个RPM包 rpm -qf 系统文件名 # -f (file):查询系统文件属于哪个软件包 # 8. 查询软件包的依赖性 rmp -qR 包名 # -R (rquires): 查询软件包的依赖性 rmp -qR httpd rmp -qpR mysql-connector-odbc-5.1.1r1144-7.el6.i686.rpm
1.2 RPM包校验
# 1. RPM包校验
rmp -V 已安装的包名
# -V (verify): 校验指定RPM包中的文件
rpm -V httpd
# 修改一点内容后,再校验
vim /etc/httpd/conf/httpd.conf
rpm -V httpd
# 结果如下图:
1. 验证内容中的8个信息的具体内容如下:
- S: 文件大小是否改变
- M: 文件的类型或文件的权限(rwx)是否被改变
- 5: 文件MD5校验和是否改变(可以看成文件内容是否改变)
- D: 设备中的代码是否改变
- L: 文件路径是否改变
- U: 文件的所有者是否改变
- G: 文件的所属组是否改变
- T: 文件的修改时间是否改变
2. 文件类型
- c: 配置文件 (config file)
- d: 普通文档 (documentation)
- g: ghost file,很少见
- l: 授权文件 (license file)
- r: 描述文件 (read me)
1.3 RPM包中文件提取
rpm2cpio 包全名 | cpio -idv .文件绝对路径
# rpm2cpio: 将rpm包转换为cpio格式的命令
# cpio:是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
cpio 选项 < [文件|设备]
# -i: copy-in模式,还原
# -d: 还原是自动新建目录
# -v: 显示还原过程
# eg:
# 查询ls命令属于哪个软件包, 也可以从网卡找属于哪个包
rpm -qf /bin/ls
# 造成ls命令误删除假象
mv /bin/ls /tmp/
# 提取RPM包中ls命令到当前目录的/bin/ls下,假设当前目录为/root
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
# 把ls命令复制到/bin/目录下,修复文件丢失
cp /root/bin/ls /bin/
2. yum在线自动安装
2.1 网络yum源
vim /etc/yum.repos.d/CentOS-Base.repo
# [base] : 容器名称,一定要放在[]中,可以随意取
# name : 容器说明,可以自己随便写
# mirrorlist: 镜像站点,如果baseurl下载的比较慢,可以选择下载快的镜像站点进行下载
# baseurl : yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢,可以改成
# 你喜欢的yum源地址
# enabled : 此容器是否生效,不写或写成enabled=1:代表生效;enable=0:代表不生效
# gpgcheck : 1:代表RPM的数字证书生效,0:不生效
# gpgkey : 数字证书的公钥文件保存位置。不用修改
2.2 常用yum命令
# 1. 查询所有可用软件包列表
yum list
# 2. 搜索服务器上所有和关键字相关的包
yum search 关键字
# 3. 安装
yum -y install 包名
# -y 自动回答yes,如果没有,安装的过程会有交互式问答
# 4. 卸载
yum -y remove 包名
# 会卸载依赖包,导致其它软件不可用, 尽量不要用yum进行卸载
# 5. 添加yum源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 6. 更新
yum -y update
2.3 CentOS6 中替换yum源
为什么要替换yum源?
答:CentOS默认yum源是国外的, 速度无法保证,用起来很不爽,今天我们把默认源换成国内的163源,163是目前国内最好用的源,速度是相当快的,还有一些比较好的源,比如阿里源wget http://mirrors.aliyun.com/repo/Centos-7.repo
。
以把CentOS7 中的yum源更换成163源
1. 进入yum源配置文件 cd /etc/yum.repos.d
2. 备份一下当前的源,以防出错后可以还原回来mv ./CentOS-Base.repo ./CentOS-Base-repo.bak
3. 下载网易163的源 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
4. 清理一下旧包 yum clean all
5. 把下载下来文件 CentOS7-Base-163.repo设置成为默认源 mv CentOS7-Base-163.repo CentOS-Base.repo
6. 生成缓存即可用163源了 yum makecache
如果不做备份:
1. cd /etc/yum.repos.d
2. wget -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
或者
curl -o CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
4. yum clean all
5. yum makecache
2.4 yum软件组管理命令
# 1. 列出所有可用的软件组列表
yum grouplist
# 2. 安装指定软件组,组名可以由grouplist查询出来
yum groupinstall 软件组名
# 卸载指定软件组
yum groupremove 软件组名
2.5 光盘yum源搭建步骤
# 1. 挂载光盘
mount /dev/cdrom /mnt/cdrom
# 2. 让网络yum源文件失效
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak
# 3. 修改光盘yum源文件
vim CentOS-Media.repo
# 内容如下:
[c6-media]
name=CentOS-$releasever - Media
# 主要修改下面一行
baseurl=file:///mnt/cdrom
# 地址为你自己的光盘挂载地址
# file:///media/cdrom/
# file:///media/cdrecorder/
# 注释这两个不存在的址
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
2.6 rpm包默认安装位置
路径 | 作用 |
---|---|
/etc |
配置文件安装目录 |
/usr/bin |
可执行文件 |
/usr/lib |
程序所使用的函数库保存位置 |
/usr/share/doc |
基本的软件使用手册保存位置 |
/usr/share/man |
帮助文件保存位置 |
3. 源码包安装
源码包安装和RPM包安装的区别
-
安装位置
源码包:安装在指定的位置当中,一般是/usr/local/软件名/
RPM包:安装的默认的路径下,看2.5小节 -
安装位置不同带来的影响
- RPM包安装的服务可以使用系统服务管理命令(service)来管理,如RPM包安装的apache的启动方法有以下两种:
/etc/rc.d/init.d/httpd start
service httpd start
- 而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,如
- usr/local/apache2/bin/apachectl start
- RPM包安装的服务可以使用系统服务管理命令(service)来管理,如RPM包安装的apache的启动方法有以下两种:
-
源码包安装过程
具体的安装步骤一般是源码包中INSTALL
文件中有详细介绍
以安装apache为例
3.1 安装# 1.安装准备 - 安装C语言编译器 - 下载源码包:http://mirror.bit.edu.cn/apache/httpd/ # 2. 安装注意事项 - 源代码保存位置:`/usr/local/src/` - 软件安装位置:`/usr/local/` # 3. 解压缩下载的源码包 # 4. 进入缩目录 # 5. ./configure 软件配置与检查 - 定义需要的功能选项 - 检测系统环境是否符合安装要求 - 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编译 ./configure --prefix=/usr/local/apache2 # --prefix: 自定义安装路径 # 6. 编译: 将源码包翻译成二进制,此时生产的都是临时文件,安装路径中还没有写入数据 make # 如果此步出错,可以使用 make clean 来清除make产生的临时文件 # 7. 安装: 此时才向安装路径中写入数据 make install
3.2 卸载
不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件rm -rf /usr/local/apache2
二、Debian系列
2.1 手动安装
dpkg [选项] 安装包
dpkg -L +软件包的名字,可以知道这个软件包包含了哪些文件
2.2 apt-get在线安装
- apt-get 安装
apt-get可以用于运作deb包
- 安装:
apt-get install
- 卸载:
apt-get remove
- 更新:
apt-get update
- 仅删除不再能被下载的包:
apt-get autoclean
- 软件包下载存放目录:
/var/cache/apt/archives/
- 删除安装包:
apt-get clean
或aptitude clean
注:删除目录/var/cache/apt/archives/
和/var/cache/apt/archives/partial/
下所有包(锁定包除外)
deb包默认安装位置
路径 | 作用 |
---|---|
/etc |
配置文件安装目录 |
/usr/bin |
可执行文件 |
/usr/lib |
程序所使用的函数库保存位置 |
/usr/share/doc |
基本的软件使用手册保存位置 |
/usr/share/man |
帮助文件保存位置 |
如:系统中的python2.7
可执行文件位置:/usr/bin/python
自带的库位置:/usr/lib/python2.6/dist-packages/
和/usr/lib/python2.7/
pip安装的法模块默认放在:usr/local/lib/python2.7/dist-packages
或~/.local/lib/python2.7/site-packages
2.3 源码包安装
同Rea Hat系列的源码安装
源码包安装路径:/usr/local/软件名
三、服务管理
3.1 服务的分类
启动与自启动的区别:
-
服务启动:就是在当前系统中让服务运行,并提供功能
-
服务自启动:自启动是指让服务在系统开机或重启之后,随着系统的启动而自动启动服务
# 1.查看服务自启动状态,可以看到所有RPM包或DEB包安装的服务 chkconfig --list # 2. 源码包安装的服务,一般在/usr/local/下 # 3. 查看某个服务是否已经启动: ps aux | grep 服务名 netstat -tlun | grep 服务名
3.2 RPM或才DEB包安装服务的管理
-
安装服务的位置
路径 作用 /etc/init.d
启动脚本位置 /etc/sysconfig
初始化环境配置文件位置 /etc/
配置文件位置 /etc/xinetd.conf
xinetd配置文件 /etc/xinetd.d
基于xinetd服务的启动脚本 /etc/lib/
服务产生的数据放在这里 /var/log/
日志 -
独立服务的启动
/etc/init.d/独立服务名 start|stop|status|restart service 独立服务名 start|stop|status|restart # 查看所有服务的状态 service --status--all
-
独立服务的自启动
# 三种方式 # 1. chkconfig [--level 运行级别] [独立服务名] [on|off] chkconfig --level 2345 httpd on # 2. 修改/etc/rc.d/rc.local文件,加入 /etc/rc.d/init.d/httpd start # 3. 使用ntsysv命令管理自启动(red hat 专有)
-
基于xinetd服务
基于xinetd的服务越来越少了,其中telnet就是一个,本节了解一下即可。另外在xinetd服务中启动与自启动是一个概念,这一点要特别注意。# 1. 安装xinetd与telnet yum -y install xinetd yum -y install telnet-server # 2. xinetd服务的启动 vim /etc/xinetd.d/telnet service telnet { flags =REUSE # 标志为REUSE,设定TCP/IP socket可重用 socket_type =stream # 使用TCP协议数据包 user =root # 启动服务的用户为root wait =no # 允许多个连接同时连接 server =/usr/sbin/in.telnetd # 服务的启动程序 log_on_failure += USERID # 登陆失败后,记录用户的ID disable =no # no:服务启动, yes:服务不启动 } # 3. 重启xinetd服务 service xinetd restart # 4. xinetd服务的自启动, 以下两种方法 chkconfig telnet on ntsysv # red hat 专有
3.3 源码包安装服务的管理
# 1. 源码包安装服务的启动与停止
# 使用绝对路径,调用启动脚本来启动。不同的源码包的启动脚本不同。可以查看
# 源码包的安装说明,查看启动脚本的方法
/usr/local/apache2/bin/apachectl start|stop
# 2. 源码包服务的自启动
vim /etc/rc.d/rc.local
# 加入以下内容
/usr/local/apache2/bin/apachectl start
# 3. 让源码包服务被服务管理命令识别
# 3.1 让源码包的apache服务能被service命令管理启动
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache
# 3.2 让源码包的apache服务能被chkconfig与ntsysv命令管理自启动
vim /etc/init.d/apache
# chkconfig:35 86 76
# 指定httpd脚本可以被chkconfig命令管理。格式是:
# chkconfig:运行级别 启动顺序 关闭顺序
# description:source package apache
# 说明,内容随意
# 4. 将apache添加至chkconfig命令管理中
chkconfig --add apache
# 查看是否添加成功
chkconfig --list | grep apache
/etc/init.d/apache 文件内容如下:
其他下载命令wget和curl
-
下载单个文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo
-
使用 wget -O 下载并以不同的文件名保存
参数-O来指定一个文件名
wget -O wordpress.tar.gz http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
-
使用 wget -c 断点续传
使用wget -c重新启动下载中断的文件:
对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件
wget -c http://mirrors.aliyun.com/repo/Centos-7.repo
4、使用 wget -b 后台下载
对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载
wget -b http://mirrors.aliyun.com/repo/Centos-7.repo
你可以使用以下命令来察看下载进度
tail -f wget-log
-
使用 wget –mirror 镜像网站
-
使用 wget -i 下载多个文件
# 1 首先,保存一份下载链接文件
cat > filelist.txt
url1
url2
url3
url4
# 2. 接着使用这个文件和参数-i下载
wget -i filelist.txt
wget不是安装方式,它是一种下载工具,类似于迅雷。
通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理,名字是World Wide Web”与“get”的结合。如果要下载一个软件,可以直接运行:
wget 下载地址
如果当前ubuntu未安装wget,可按下列操作进行安装和检查是否安装成功:
sudo apt-get update
sudo apt-get install wget
wget --version