CentOS修改各大yum源(centos5,centos6,centos7)
Redhat、Centos、Fedora等
RPM包命令原则
httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd: 软件包名
2.2.15: 软件版本
15: 软件发布的次数
el6.centos: 适合的Linux平台
i686: 适合的硬件平台
rpm: rmp包扩展名
RPM包依赖性
常用命令
# 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. 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)
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.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 |
帮助文件保存位置 |
安装位置
源码包:安装在指定的位置当中,一般是/usr/local/软件名/
RPM包:安装的默认的路径下,看2.5小节
安装位置不同带来的影响
/etc/rc.d/init.d/httpd start
service httpd start
源码包安装过程
具体的安装步骤一般是源码包中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
dpkg [选项] 安装包
dpkg -L +软件包的名字,可以知道这个软件包包含了哪些文件
参考:apt-get apt-cache命令 使用
apt-get安装的软件包存储位置:/var/cache/apt/archives/ 或者 /var/cache/apt/archives/partial/
apt-get install
apt-get dist-upgrade
apt-get remove
(不包括配置文件)apt-get purge
(包括配置文件)apt-get upgrade
apt-get update
apt-get autoclean
/var/cache/apt/archives/
apt-get clean
或aptitude clean
/var/cache/apt/archives/
和 /var/cache/apt/archives/partial/
下所有包(锁定包除外)apt-get source
# 下载pkg包的源代码到当前目录apt-get download
# 下载pkg包的二进制包到当前目录apt-get source -d
# 下载完源码包后,编译apt-get build-dep
# 构建pkg源码包的依赖环境(编译环境?)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
apt-cache 查询操作
apt-cache stats
# 显示系统软件包的统计信息apt-cache search
# 使用关键字pkg搜索软件包apt-cache show
# 显示软件包pkg_name的详细信息apt-cache depends
# 查看pkg所依赖的软件包apt-cache rdepends
# 查看pkg被那些软件包所依赖apt-key debian软件包密钥管理命令
apt-key是Debian软件包的安全管理工具。每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。
语法:
apt-key 参数
参数:
操作指令:APT密钥操作指令。
实例:
有时候我们安装软件的时候就需要先增加签名,下载一个加密文件,如安装wine的步骤:
1、为Ubuntu gutsy添加最新的 wine源:
wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
2、获得Wine的apt列表for Gutsy
sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/gutsy.list -O /etc/apt/sources.list.d/winehq.list
3、更新和升级 引用:
sudo apt-get update
sudo apt-get dist-upgrade
4、安装wine
sudo apt-get install wine
同Rea Hat系列的源码安装
源码包安装路径:/usr/local/软件名
/etc/apt/sources.list 是包管理工具 apt 所用的记录软件包仓库位置的配置文件,同样的还有位于 /etc/apt/sources.list.d/*.list 的各文件。
sources.list 条目格式
deb http://site.example.com/debian distribution component1 component2 component3
deb-src http://site.example.com/debian distribution component1 component2 component3
共分四部分:档案类型(Archive type),仓库地址(Repository URL), 发行版(Distribution),软件包分类(Component)
档案类型(Archive type)
仓库地址(Repository URL)
条目的第二个词则是软件包所在仓库的地址。我们可以更换仓库地址为其他地理位置更靠近自己的镜像来提高下载速度
常用镜像地址列表:
# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
发行版(Distribution)
发行版有两种分类方法:
软件包分类(Component)
发行版之后的就是软件包的具体分类了,可以有一个或多个
Debian
main:包含符合 DFSG 指导原则的自由软件包,而且这些软件包不依赖不符合该指导原则的软件包。这些软件包被视为 Debian 发型版的一部分。
contrib: 包含符合 DFSG 指导原则的自由软件包,不过这些软件包依赖不在 main 分类中的软件包。
non-free: 包含不符合 DFSG 指导原则的非自由软件包。
Ubuntu
main: 官方支持的 自由软件。
restricted: 官方支持的非完全 自由的软件。
universe: 社区维护的自由软件。
multiverse: 非自由软件。
参考:/etc/apt/sources.list 详解
下载一个deb格式的软件kismet
curl https://www.kismetwireless.net/code/dists/quantal/kismet/binary-i386/kismet-2011.03.2.i386.deb >kismet-2011.03.2.i386.deb
安装kismet
dpkg -i kismet-2011.03.2.i386.deb
根据提示安装相关包
sudo apt-get install libnl2
服务启动:就是在当前系统中让服务运行,并提供功能
服务自启动:自启动是指让服务在系统开机或重启之后,随着系统的启动而自动启动服务
# 1.查看服务自启动状态,可以看到所有RPM包或DEB包安装的服务
chkconfig --list (Red Hat)
sysv-rc-conf --list (Debian 需要安装)
# 2. 源码包安装的服务,一般在/usr/local/下
# 3. 查看某个服务是否已经启动:
ps aux | grep 服务名
netstat -tlun | grep 服务名
安装服务的位置
路径 | 作用 |
---|---|
/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 专有
# 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
service命令其实是去/etc/init.d目录下,去执行相关程序
# service命令启动redis脚本
service redis start
# 直接启动redis脚本
/etc/init.d/redis start
# 开机自启动
update-rc.d redis defaults
其中脚本需要我们自己编写
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。
systemd对应的进程管理命令是systemctl
systemctl redis start
systemctl redis stop
# 开机自启动
systemctl enable redis
-q:不显示指令执行过程;
-O:下载并以指定的文件名保存;
wget -O-以’-‘作为file参数,那么数据将会被打印到标准输出,通常为控制台。
wget -O ./-以’./-‘作为file参数,那么数据才会被输出到名为’-'的file中
下载单个文件
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