# 今天内容
1、重要的目录
1、/usr
安装第三方软件的目录,
1、/usr/local主要用来安装软件的目录
2、/usr/bin和/usr/local/bin 主要用来存放第三方二进制命令文件的目录
3、linux安装文件的三种方式
1、rpm
rpm无法解决安装包依赖的问题
下载zsh的连接:https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zsh-5.0.2-34.el7_8.2.x86_64.rpm
rpm -ivh [软件包名称]: 安装软件
[root@python ~]$ rpm -ivh zsh-5.0.2-34.el7_8.2.x86_64.rpm
warning: zsh-5.0.2-34.el7_8.2.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:zsh-5.0.2-34.el7_8.2 ################################# [100%]
rpm -Uvh [软件包名称]:更新软件
rpm -e [软件包名称]:卸载软件
[root@python ~]$ rpm -e zsh
rpm -q [软件包名称] : 查看该软件包是否安装
rpm -qa [软件包名称] : 打印当前系统中所有的已经安装了的安装包
跟软件包,则判断软件包是否安装
不跟软件包,则打印当前系统中所有的已经安装的软件包
rpm -ql [软件包名称] : 打印指定安装包中包含的所有文件
rpm -qc [软件包名称] : 打印指定安装包的配置文件
[root@python ~]$ rpm -q zsh
package zsh is not installed
[root@python ~]$ rpm -q gpm-libs-1.20.7-6.el7.x86_64
gpm-libs-1.20.7-6.el7.x86_64
[root@python ~]$ rpm -ql python
/usr/bin/pydoc
/usr/bin/python
/usr/bin/python2
/usr/bin/python2.7
/usr/libexec/platform-python
/usr/share/doc/python-2.7.5
/usr/share/doc/python-2.7.5/LICENSE
/usr/share/doc/python-2.7.5/README
/usr/share/man/man1/python.1.gz
/usr/share/man/man1/python2.1.gz
/usr/share/man/man1/python2.7.1.gz
zsh-5.0.2-34.el7_8.2.x86_64.rpm
zsh : 软件包的名称
5.0.2 软件包的版本号
34 软件包的构建次数
el7 软件包适用的平台
8.2.x86_64 适用于64位操作系统
.rpm 扩展名
2、yum (难点)
可以自动解决安装包的依赖(也就是说安装包安装的时候,自动将依赖包提前安装)
缺点:无法自定义安装
1、yum的格式
安装软件
yum install [安装包的名称] : 安装安装包的名称
[root@python ~]$ yum install nginx
-y : 不提示,默认确认
卸载软件
yum remove [软件包名称] : 卸载软件包
-y : 不提示删除,默认确认
更新软件
yum update [软件包] : 更新软件
1、跟软件包则更新软件包
2、不跟软件包则更新整个操作系统
搜索软件
在仓库中搜索相关的软件包
[root@python ~]$ yum search nginx
知识储备:
1、解决nginx安装包没有的问题:需要下载epel源
2、epel源仓库是CentOS扩展包的仓库
3、安装epel源仓库
1、切换目录
[root@python ~]$ cd /etc/yum.repos.d/
2、编辑文件
[root@python yum.repos.d]$ vim epel.repo
[epel]
name="epel源"
baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
gpgcheck=0
3、更新源
[root@python yum.repos.d]$ yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base epel
Cleaning up list of fastest mirrors
[root@python yum.repos.d]$ yum makecache
搭建私有yum仓库
目标
1、能解决依赖
2、必须能够远程访问
yum的底层逻辑
第一步:执行yum install nginx安装命令
第二步:yum去/etc/yum.repos.d这个目录中
第三步:根据/etc/yum.repos.d中所有的.repo结尾的文件中保存的baseurl中的连接,去寻找对应的软件包
第四步:在寻找到的软件包中,下载软件,(/var/cache/yum/x86_64/7/[yum仓库名称])
yum的配置文件
[root@python yum.repos.d]$ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever 指定yum下载的软件包存放的路径($basearch == x86_64, $releasever == 7)
keepcache=0 是否保存下载的软件包(0 == 不保存 , 1 == 保存)
源的配置文件(必须以.repo结尾,必须在/etc/yum.repos.d)
[源的名称]
name 源的简介(必须)
baseurl 源的地址(必须)
gpgcheck 是否验证源的安全性(1 == 验证, 0 == 不验证)
第五步:安装所有的软件(rpm -ivh)
第六步:检测是否安装完毕并返回
实施
1、创建目录,充当仓库
[root@python yum.repos.d]$ mkdir /yumrepo
2、下载软件,存放于yum仓库中
[root@python yumrepo]$ cd /yumrepo
[root@python yumrepo]$ mkdir Packages
[root@python yumrepo]$ cd Packages
[root@python Packages]$ wget https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm
知识储备:
wget [下载的文件URL] : 下载文件
wget 需要安装:yum install wget
rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm
3、建立依赖关系
1、安装建立依赖关系的命令
yum install yum-utils createrepo
2、建立yum源的依赖关系
createrepo [仓库的路径]
[root@python ~]$ createrepo /yumrepo/
Spawning worker 0 with 1 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
3、检查
[root@python ~]$ cd /yumrepo/
[root@python yumrepo]$
[root@python yumrepo]$ ll
total 4
drwxr-xr-x 2 root root 39 Sep 22 12:01 Packages
drwxr-xr-x 2 root root 4096 Sep 22 12:03 repodata
[root@python yumrepo]$ ll repodata/
total 28
-rw-r--r-- 1 root root 927 Sep 22 12:03 097191e578bcee7a2308ccba0954a20455f0eaf3a7947d4f622dbe61ad5e64fc-filelists.sqlite.bz2
-rw-r--r-- 1 root root 385 Sep 22 12:03 518eb570ab7d4552fc5fb4272ad172d28fd023f77c26d422e8e492275fd52000-filelists.xml.gz
-rw-r--r-- 1 root root 763 Sep 22 12:03 71a8c494a8fe55ac4128fad1215b4eddca9014254612ed15ac349272a60c19a9-other.xml.gz
-rw-r--r-- 1 root root 1384 Sep 22 12:03 799e159acb34e2da5d7d4fc418a2c1ea677d5371c709055fd7876c0ccd314bed-other.sqlite.bz2
-rw-r--r-- 1 root root 908 Sep 22 12:03 7a69010520845aa2755a292500cc4db3ec5ebae9201d66e805e52728606adc3f-primary.xml.gz
-rw-r--r-- 1 root root 2052 Sep 22 12:03 b61b928dc6d20cd78ca3a8f567e641792c233aab35763d12d05447894b370835-primary.sqlite.bz2
-rw-r--r-- 1 root root 2966 Sep 22 12:03 repomd.xml
4、编写yum源
[root@python yum.repos.d]$ vim local.repo
[root@python yum.repos.d]$ cat local.repo
[local]
name=本地yum源
baseurl=file:///yumrepo
gpgcheck=0
更新源
[root@python yum.repos.d]$ yum clean all
Loaded plugins: fastestmirror
Cleaning repos: local
Cleaning up list of fastest mirrors
Other repos take up 274 M of disk space (use --verbose for details)
[root@python yum.repos.d]$ yum makecache
Loaded plugins: fastestmirror
Determining fastest mirrors
local | 2.9 kB 00:00:00
(1/3): local/primary_db | 2.0 kB 00:00:00
(2/3): local/other_db | 1.4 kB 00:00:00
(3/3): local/filelists_db | 927 B 00:00:00
Metadata Cache Created
5、测试
yum remove zip
yum install zip
6、安装远程软件,提供远程访问服务
1、恢复base源和epel源
[root@python yumrepo]$ cd /etc/yum.repos.d/
[root@python yum.repos.d]$ ll
total 4
drwxr-xr-x 2 root root 47 Sep 22 12:07 backup
-rw-r--r-- 1 root root 61 Sep 22 12:11 local.repo
[root@python yum.repos.d]$ mv backup/* .
[root@python yum.repos.d]$
[root@python yum.repos.d]$ ll
total 12
drwxr-xr-x 2 root root 6 Sep 22 12:20 backup
-rw-r--r--. 1 root root 102 Sep 16 11:58 CentOS-Base.repo
-rw-r--r-- 1 root root 85 Sep 22 10:58 epel.repo
-rw-r--r-- 1 root root 61 Sep 22 12:11 local.repo
2、安装nginx远程web服务软件
[root@python yum.repos.d]$ yum install nginx -y
3、修改nginx的配置文件,使其能够代理yumrepo仓库的远程服务
vim /etc/nginx/conf.d/autoindex.conf
或vim /etc/nginx/nginx.conf
1、将目录索引的配置文件添加进来
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
2、修改nginx代理的目录
root /yumrepo;
3、启动nginx服务
systemctl start nginx
4、在浏览器
http://192.168.15.201/
知识储备:
nginx实现目录索引
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
4、修改local yum源
vim local.repo
1、隐藏base源和epel源
[root@python yum.repos.d]$ pwd
/etc/yum.repos.d
[root@python yum.repos.d]$ ll
total 12
drwxr-xr-x 2 root root 6 Sep 22 12:20 backup
-rw-r--r--. 1 root root 102 Sep 16 11:58 CentOS-Base.repo
-rw-r--r-- 1 root root 85 Sep 22 10:58 epel.repo
-rw-r--r-- 1 root root 61 Sep 22 12:11 local.repo
[root@python yum.repos.d]$ mv CentOS-Base.repo backup/
[root@python yum.repos.d]$ mv epel.repo backup/
2、修改local源,使其支持远程访问
[local]
name=本地yum源
baseurl=http://192.168.15.201/
gpgcheck=0
3、重新生成
[root@python yum.repos.d]$ yum clean all
Loaded plugins: fastestmirror
Cleaning repos: local
Cleaning up list of fastest mirrors
Other repos take up 274 M of disk space (use --verbose for details)
[root@python yum.repos.d]$ yum makecache
Loaded plugins: fastestmirror
Determining fastest mirrors
local | 2.9 kB 00:00:00
(1/3): local/primary_db | 2.0 kB 00:00:00
(2/3): local/other_db | 1.4 kB 00:00:00
(3/3): local/filelists_db | 927 B 00:00:00
Metadata Cache Created
5、测试
yum remove zip
yum install zip
补充:搭建yum仓库的步骤(版本1)
1、创建目录,充当仓库
mkdir /yumrepo2
2、在仓库中创建Packages目录,用于存放软件
cd /yumrepo2
mkdir Packages
3、下载测试软件到Packages目录中
cd /yumrepo2/Packages
wget https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm
4、下载远程访问软件:Nginx
yum install nginx
5、下载仓库初始化软件(yum-utils、createrepo)
yum install yum-utils createrepo
6、初始化仓库
createrepo /yumrepo2
注:会在仓库目录中创建repodata目录,主要用来存放yum依赖关系的。
7、修改Nginx配置文件,使其代理yum仓库目录索引
修改/etc/nginx/nginx.conf
root /yumrepo2;
nginx实现目录索引
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
systemctl restart nginx
在浏览器测试
8、编辑yum源
1、将/etc/yum.repos.d中所有的文件备份到backup目录中
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
2、创建local.repo文件
touch local.repo
3、编辑local.repo
vim local.repo
[local]
name="xxx源的简介"
baseurl=http://192.168.15.201
gpgcheck=0
4、更新源
yum clean all
yum makecache
9、测试
yum remove zip
yum install zip
搭建yum仓库(版本2)
1、修改IP
[root@localhost ~]# sed -i 's#.200#.50#g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
[root@localhost ~]# systemctl restart network
2、关闭selinux
/etc/selinux/config
1、临时关闭
[root@localhost ~]# setenforce 0
2、永久关闭
[root@localhost ~]# vi /etc/selinux/config
SELINUX=disabled
3、关闭默认的防火墙
[root@localhost ~]# systemctl disable --now firewalld
disable : 禁用
enable : 启用
--now :立即执行
4、安装web服务软件以及yum仓库软件
1、清理yum源
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv ./*.repo* backup/
[root@localhost yum.repos.d]# ll
total 4
drwxr-xr-x. 2 root root 4096 Sep 24 09:15 backup
2、安装base源和epel源
[root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
[epel]
name="epel"
baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
gpgcheck=0
yum clean all
yum makecache
3、安装
yum install nginx yum-utils createrepo -y
5、建立仓库
[root@localhost yum.repos.d]# mkdir -p /yumrepo3/Packages
6、下载软件
curl -o /yumrepo3/Packages/zip-3.0-11.el7.x86_64.rpm https://repo.huaweicloud.com/centos/7/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm
扩展内容:
curl 和 wget 之间的区别
curl 是用来访问链接的
-o : 指定保存文件的路径
curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
wget 是用来下载文件的
-O :指定下载文件的路径
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
7、修改Nginx配置文件
[root@localhost ~]# vi /etc/nginx/nginx.conf
# 大致在42行左右
root /yumrepo3;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
8、重启Nginx服务
systemctl restart nginx
9、初始化yum仓库
createrepo /yumrepo3
10、编写yum源测试
[root@localhost yum.repos.d]# vi local.repo
[root@localhost yum.repos.d]# cat local.repo
[local]
name="This is Local repo"
baseurl=http://192.168.15.50/
gpgcheck=0
11、更新yum源
yum clean all
yum makecache
12、测试安装
yum remove zip -y
yum install zip -y
3.二进制编译安装
优点:单独定制安装软件
缺点:不能决绝依赖关系
下载源代码包:https://nginx.org/download/nginx-1.20.1.tar.gz
[root@python ~]$ wget https://nginx.org/download/nginx-1.20.1.tar.gz
知识储备:
解压文件:tar -xf nginx-1.20.1.tar.gz
1.检查系统
cd nginx-1.20.1
yum install pcre pcre-devel zlib zlib-devel make gcc gcc-c++ -y
./configure
2.编译
make
-j : 多核编译, 但是容易出错(不推荐)
3.安装
make install
4.测试
[root@python nginx]$ systemctl stop nginx
# 启动nginx服务
[root@python nginx]$ /usr/local/nginx/sbin/nginx