第8天:软件运行和包管理工具
一、软件运行环境
1、ABI 应用程序的二进制接口
window :pe
linux :ELF
2、库级别的虚拟化
linux :WINE
WINDOWS :CYGWIN
3、API 应用 开发接口
4、开发语言
gcc -E hello.c -o hello.i 对hello.c文件进行预处理,生成了hello.i文件
gcc -S hello.i -o hello.s 对预处理文件进行编译,生成了汇编文件
gcc -C hello.s -o hello.o 对汇编文件进行编译,生成了目标文件
gcc hello.o -o hello 对目标文件进行链接,生成可执行文件
5、ldd 查询程序调用的库
二、软件包基础
1、红帽公司自己开发了RPM包管理系统
rpm -q autofs
systemctl enable --now autofs
cd /misc/cd
2、利用cpio 工具查看包文件列表
rpm2cpio 包文件 |cpio -itv
三、RPM包管理
1、公共数据库:安装时生成的信息
/var/lib/rpm
2、mysql:
3、http://www.elrepo.org 最新内核包
4、rpm安装
rpm -q vsftpd 确认包有没有装
rpm -ivh vsftpd-3.0.0.32.x86_64.rpm
5、rpm卸载
rpm -e vsftpd --nodeps 强行卸载
6、rpm放哪里
rpm -ql tree 已经装了哪些文件 ,及路径
rpm -qi tree 查包在信息
rpm -qf 查磁盘上的文件来自哪个包
rpm -qd 只看文档
rpm -qa 查询所有安装的包
rpm -qc
rpm -k tree 检查包是否合法 rpm --import /包路径 导入KEY
rpm -v 是否安装之后被修改过
rpm -q --scripts 是否自带脚本
7、包校验:检查完整性
rpm -k |checksig rmpfile
四、YUM和DNF管理
1、centos 使用yum ,dnf 解决rpm的包依赖关系
yum 依赖于服务器和客户端,
yum服务器存放RPM包和相关包的元数据库
2、yum客户端配置
/misc/cd/repodata 光盘仓库
/etc/yum.conf 所有仓库提供公共配置
/etc/yum.repos.d/*.repo 为每个仓库提供配置文件
3、配置私有YUM服务器
安装 yum -y install httpd
systemctl start httpd
systemctl enable --now httpd
防火墙开启80端口:firewall-cmd --zone=publick --add-port=80/tcp --permanent
`systemctl restart firewall
4、查看yum安装历史
yum history
undo 撤回执行
redo 重新执行
5、仓库缓存清理: /var /cache/yum /
yum clean
6、查询某个文件来自哪个包
yum provides NAME
7、卸载安装文件
yum -remove NAME
8、安装epel源:里面有1W多个包文件
yum install epel-release
9、可用变量
$releasever: 当前OS的发行版的主版本号
$arch:CPU架构
$basearch:系统基础平台
$contentdir:表示目前
$YUM0-$YUM9:自定义变更
10、禁用、启用仓库
yum -config-manager --disable epel
--enable epel
11、重新安装
yum reinstall NAME
12、软件包升级
yum update NAME
13、查看程序包
yum info NMAE
14、查询来自于哪个包
yum provides
15、查询YUMLOG
CAT /var/log
16、查包组
yum groupinfo list
17、关图形
init 3
free -h
五、如何 升级内核
1、从内核管网下载原码,编译安装
2、利用elrepo.org
3、只下载安装文件,不安装
yun install --downloadonly --downloaddir=/data/
六、编译安装
1、开源程序源代码的获取
apache.org mariabd.org
github.com gitee.com sourceforge.net code.google.com
2、编译源码的项目工具
c的源码:使用MAKE项目管理器
./configure 指定安装路径和启用特性
make根据MAKEFILE文件,会检测依赖的环境 ,进行构建应用程序
make install 复制文件到相应路径
3、编译安装准备
开发工具:make gcc
开发环境:开发库:glibc
软件相关依赖包
4、试安装
查看tree版本:rpm -qi tree
(1)下载源码
(2)没有gcc的话,需要安装:yum install gcc
(3)解压:tar xvf tree-2.1.1.tgz -C /usr/local/src
(3) make
(4)make install
(5)创建软链接, ln -s /apps/bin/tree /usr/bin/
5、编译安装cmatrix
(2)没有gcc的话,需要安装:yum install gcc
(3)解压:cmatrix-1.2a.tar.gz -C /usr/local/src
(4) ./configure --prefix=/apps/cmatrix
(5)提示缺少文件:curses.h yum provides curses.h
(6)make
(7)make install
(8)执行:cmatrix -C red /green
6、安装apache
./configure --prefix=/apps/httpd --sysconfdir=/etc/httpd --enable-ssl
(3)make
(4)make install
启动不了解决方法: netstat -nlp |grep :80 killall -9 httpd apachectl start
7、生产中常用 的包
七、创建私有仓库
从网上下载:reposync --repoid=extrea --download-metadata -p /var/www/html/centos/
八、UBUNTU 软件管理
1、dpkg,类似rpm,但同样不能解决依赖问题
2、apt ,类似yum
apt install -y 安装
apt remove 卸载程序内容,不删除配置文件
apt purge 彻底删除
apt update 更新包资源列表
apt search
apt show 包的详细信息
apt list
apt install apt-file 类似于yum provides
3、常见用法
dpkg -i package.deb 安装
dpkg -r package.deb 卸载
dpkg -P package.deb
dpkg -l package.deb 查看装了多少包
dpkg -s package.deb 查看包版本
dpkg -L package.deb 查看生成了哪些文件
dpkg -S package.deb 查看某个文件 来自于哪个包
4、配置文件
/etc/apt/sources.list