1.软件管理
1.1软件包中的文件分类
- 二进制文件
- 库文件
- 配置文件
- 帮助文件
1.2包查询–rpm
-a:所有包
-p:针对尚未安装的程序包文件做查询工作
-l:查看指定的程序包安装后生成的所有文件
-i:查看包的信息
#常用的查询方法
-qa/q/qi
2、yum和dnf
2.1 yum/dnf工作原理
- yum/dnf是基于C/S模式
- yum服务器存放的rpm包和相关包的元数据库
- yum客户端访问yum服务器进行安装或查询等
2.1.1yum的实现过程
1、先在yum服务器上创建yum repository(yum 仓库),在仓库中事先存储众多的rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)
2、当yum客户端利用yum/dnf工具进行安装包时,会自动下载repodate中的元数据,查询元数据是否存在相关包及依赖性并自动从仓库中找到相关包下载并安装
2.2 yum客户端配置
2.2.1 yum客户端配置文件
/etc/yum.conf #为所有仓库提供公共配置
/etc/yum.repos.d/*.repo #为每个仓库提供配置文件
[root@localhost yum.repos.d]# cat CentOS-Base.repo
[base]
name=centos #仓库名
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ #仓库URL
gpgcheck=1 #是否对安装包做校验 (0表示不检查,1表示检查)
enabled=1 #0表示关闭,1表示开启
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7 #检查仓库key的URL
2.2.2yum的常用命令
1、yum repolist #显示仓库列表
2、yum provides Package #查命令来自哪个安装包
3、yum history #显示或使用事务历史
4、yum makecache #创建元数据缓存
5、yum clean #删除缓存数据
6、yum deplist #列出软件包的依赖关系
2.2.3 搭建yum私有仓库
1、环境初始化
- 时间同步
- 关闭 防火墙和selinux
2、搭建yum仓库(这里挂载光盘源为例)
1、挂载光盘
[root@yum-server ~]#mkdir /data
[root@yum-server ~]#mount /dev/sr0 /data/
2、下载httpd服务
[root@yum-server ~]#yum -y install httpd
[root@yum-server ~]#systemctl start httpd && systemctl enable httpd #设置服务开机自启动
#创建存放本地光盘源的目录
[root@yum-server ~]#mkdir /var/www/html/repo
#检查http服务是否起来
[root@yum-server ~]# ss -ntlp|grep http
LISTEN 0 511 [::]:80 [::]:* users:(("httpd",pid=2891,fd=4),("httpd",pid=2890,fd=4),("httpd",pid=2889,fd=4),("httpd",pid=2517,fd=4),("httpd",pid=2516,fd=4),("httpd",pid=2515,fd=4),("httpd",pid=2413,fd=4),("httpd",pid=2412,fd=4),("httpd",pid=2411,fd=4),("httpd",pid=2409,fd=4),("httpd",pid=2408,fd=4))
3、把本地厂仓源上传至/var/www/html/repo #这里有两个方法:第一个方法直接把光盘源挂载到/var/www/html/repo目录,但是一旦服务器重启后就要重新挂载,故不推荐使用;第二个方法,先把本地光盘源挂载到一个指定目录(/data),然后把仓库的数据全部拷贝到/var/www/html/repo目录下,这样即使服务器重启也不影响本地源的使用。
cp -a /data/* /var/www/html/repo/ #访问http://172.17.8.102/repo是否能打开
4、yum服务器配置本地源
[root@yum-server ~]# cat /etc/yum.repos.d/centos.repo
[CentOS]
name=CentOS
baseurl=file:///var/www/html/repo
enabled=1
gpgcheck=0
注意:先安装个包测试本地源是否可用
5.yum客户端配置yum源
[root@yum-client yum.repos.d]# cat centos.repo
[BaseOS]
name=CentOS
baseurl=http://172.17.8.102/repo
enabled=1
gpgcheck=0
[root@yum-client yum.repos.d]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识 源名称 状态
BaseOS CentOS 4,070
repolist: 4,070
3、编译安装
3.1 编译源码的项目工具
- C、C++的源码编译:使用 make 项目管理器
configure脚本 --> Makefile.in --> Makefile - 相关开发工具:
autoconf: 生成configure脚本
automake:生成Makefile.in - java的源码编译: 使用 maven
3.2编译安装的准备工作
- 开发工具:make ,gcc
- 开发环境:开发库(glibc:标准库),头文件,可安装开发包组 Development Tools
- 安装软件相关的依赖包
3.3、编译安装的步骤
-
下载并解压包到指定的目录
-
运行configure脚本,生成Makefile文件 (指定安装的位置和启用的特性)
1、安装路径的设定 --prefix=/PATH #指定安装位置,默认的路径为/usr/local --sysconfdir=/PATH #配置文件按装位置
-
make
-
make insatll
注意:可以把二进制目录程序导入至PATH环境变量中
实例:编译安装tree
1、下载安装并解压到指定的路径
[root@yum-server ~]#mkdir /app
[root@yum-server app]# wget http://mama.indstate.edu/users/ice/tree/src/tree-2.1.0.tgz
[root@yum-server app]# tar -xvf tree-2.1.0.tgz
[root@yum-server ~]# cd /app/tree-2.1.0/
2、生成Makefile文件
[root@yum-server tree-2.1.0]# ll Makefile #解压后发现tree包自带Makefile文件,这里就不需执行生成Makefile文件的步骤,直接修改Makefile文件
-rw-r--r-- 1 4437 users 2941 4月 17 15:02 Makefile
[root@yum-server tree-2.1.0]# vim Makefile
PREFIX=/app/tree-2.1.0 #安装包的路径(只需修改路径即可)
CC=gcc
INSTALL=install
VERSION=2.1.0 #版本
TREE_DEST=tree
DESTDIR=${PREFIX}/bin
MAN=tree.1
3、编译
[root@yum-server tree-2.1.0]#make
4、安装
[root@yum-server tree-2.1.0]#make install
注意:为了使用方便创建tree启动文件的软链接或者修改环境变量
[root@yum-server tree-2.1.0]#ln -s /app/tree-2.1.0/bin/tree /usr/local/bin
4、Ubuntu软件管理
- dpkg:类似于centos的rpm
- apt:类似于centos的yum
- apt源的配置文件:/etc/apt/sources.list
Ubuntu和centos没什么区别,这里就不做过多的介绍