目录
一、Linux系统应用程序
1.典型的应用程序的目录结构
2、常见的软件包封装类型
二、RPM软件包管理
1、RPM是什么?
2、rpm一般命名格式
3、RPM安装包从何而来?如何挂载?
4、挂载的注意事项:
5、目的:提供安装包
6、查看已经安装的软件包
7.查看未安装的软件包格式:
8、安装
9、卸载
10、重建数据库:
11、yum
三、yum仓库的搭建
2、可能会出现的问题
四、编译安装
1、安装准备工作:
2、安装过程:
3、./configure --help可以安装模块
4、configure是作者放到源码包中给我们使用的是脚本文件
5、安装时可能会遇到的问题:
6、步骤:
所在目录 | 文件类型 |
---|---|
/usr/bin | 普通执行程序文件 |
/usr/sbin | 服务器执行程序文件和管理程序文件 |
/etc | 应用程序配置文件 |
/var/log | 日志文件目录 |
/var/share/doc | 应用程序参考文档文件 |
/usr/local/share/man | 应用程序手册页文件 |
文件类型 保存目录
RPM软件包 扩展名为“.rpm"
DEB软件包 扩展名为“.deb"
源代码软件包 一般为“.tar.gz"等格式的压缩包".tar.bz2"包含程序的原始代码
绿色免安装的软件包 软件包的扩展名不一,以TarBall格式的居多在压缩包内提供已编 译好的执行程序文件解开压缩包后的文件即可直接使用如“子网 掩码计算器”
①由Red hat公司提出,被众多Linux发行版所采用
②建立统一的文件数据库
③详细记录软件包安装,卸载,升级等变化信息
④自动分析软件包依赖关系
bash-4.1.2-15.el6_4.x86_64.rpm
①安装包在网上下载
②从光盘中复制:挂载光盘 mount /dev/sr0 /mnt/ umount是取消挂载 df是查看挂载情况
①最好使用空文件夹进行挂载cdrom
②一个文件夹挂载多个装备
③一个设备可以挂载多少文件夹上
格式:rpm -q 软件吗
选项 | 功能 |
---|---|
-q | 查询已安装的软件都要加q |
-qi | 查看指定软件详细信息 |
-ql | 显示指定软件包的所有文件列表 |
-qc | 显示指定软件包的配置文件 |
-qa | 显示当前系统中以 RPM 方式安装的所有软件列表 |
rpm -qp软件名
格式:rpm -ivh 软件名
-i | 安装 |
-v | 过程 |
-h | 人性化 |
格式:
rpm -e 软件名
①rpm --rebuliddb
②rpm --initdb
为了解依赖关系所以发明了yum命令
客户端:配置文件指向服务器
服务端:软件包
yum仓库
本地:自己既是服务端又是客户端
网络:二者是分开的
元信息:是一个文件,记录了:安装包路径,安装包依赖关系
①客户端根据配置文件找到了服务端
②客户端将元信息下载到本地
③根据元信息去下载对应的安装包到本地后进行安装
④安装完成后再删除安装包
系统安装好自带网络yum
服务端:vim /etc/yum.conf服务端配置文件
客户端:cd /etc/yum.repos.d/必须要有后缀名 要以.repo结尾
必须要放在文件夹下
①配置虚拟机,打开虚拟机设置,在cd选项确保设备状态两个全部勾选
②所需要的命令公式,如下图。
mount /dev/sr0 /mnt #挂载提供安装包
cd /etc/yum.repos.d #切换到固定目录
mkdir bak #建立备份文件夹
mv *.repo bak #将所有网络源移走,减少干扰
vim zhuo.repo #自建本地源的配置文件
[zhuo] #自定义仓库描述
name=zhuoer #自定义仓库名
baseurl=file:///mnt #指明仓库位置
gpgcheck=0 #不验证安全性(若为1则验证)
yum clean all #清理缓存
yum makecache #重新建立元数据
yum install bind -y #下载软件bind进行验证
③实验开始
先输入到mv*.repo back
然后进入到vim然后输入i进入输入模式输入[local]
然后name=local
然后basecrl=file:///mnt
然后gpgcheck=0关闭
最后输入esc关闭然后输入:wq保存并退出
然后输入yum clean all
最后输入yum makecache 重新下载元数据
具体代码看上图操作
出现报错指令后使用ctrl+c就可以停止命令
然后输入命令rm -rf /var/run/yum.pid 或者kill -9 2550就可以解决
①选择装在哪
②检测编译环境
③选择安装模块
①./configure
②make
③make install
①./configure可能会缺少编译工具:解决方法先删除make file文件,然后观察报错信息,然后自己去百度
②make步骤:将源代码翻译成二进制,会形成一个绿色的可执行文件
③make install将执行及相关依赖文件拷贝到指定的目录中
①预先安装软件
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl pcre apr*
②操作编译代码
[root@localhost ~]# mkdir /bianyi
[root@localhost ~]# cd /bianyi/
[root@localhost bianyi]# wget https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.48.tar.bz2
--2021-07-01 22:39:47-- https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.48.tar.bz2
正在解析主机 mirrors.bfsu.edu.cn (mirrors.bfsu.edu.cn)... 39.155.141.16, 2001:da8:20f:4435:4adf:37ff:fe55:2840
正在连接 mirrors.bfsu.edu.cn (mirrors.bfsu.edu.cn)|39.155.141.16|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:7194385 (6.9M) [application/octet-stream]
正在保存至: “httpd-2.4.48.tar.bz2”
100%[=========================================================>] 7,194,385 4.45MB/s 用时 1.5s
2021-07-01 22:39:49 (4.45 MB/s) - 已保存 “httpd-2.4.48.tar.bz2” [7194385/7194385])
[root@localhost bianyi]tar xvf httpd-2.4.48.tar.bz2
[root@localhost bianyi]# ls
httpd-2.4.48 httpd-2.4.48.tar.bz2
[root@localhost bianyi]# cd httpd-2.4.48/
[root@localhost httpd-2.4.48]# ./configure \
--prefix=/usr/local/apache \
./configure --prefix=/usr/local/apache
中间省略
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... no
configure: error: APR not found. Please read the documentation.
无apr包安装即可
[root@localhost httpd-2.4.48]# yum install apr* -y
中间省略
作为依赖被升级:
cyrus-sasl.x86_64 0:2.1.26-23.el7 cyrus-sasl-gssapi.x86_64 0:2.1.26-23.el7
cyrus-sasl-lib.x86_64 0:2.1.26-23.el7 cyrus-sasl-md5.x86_64 0:2.1.26-23.el7
cyrus-sasl-plain.x86_64 0:2.1.26-23.el7 cyrus-sasl-scram.x86_64 0:2.1.26-23.el7
expat.x86_64 0:2.1.0-12.el7 libdb.x86_64 0:5.3.21-25.el7
libdb-utils.x86_64 0:5.3.21-25.el7 openldap.x86_64 0:2.4.44-23.el7_9
完毕!
[root@localhost httpd-2.4.48]# ./configure \
> --prefix=/usr/local/apache \
checking for APR-util... yes
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/bianyi/httpd-2.4.48':
configure: error: C compiler cannot create executables
See `config.log' for more details
提示gcc 没有安装,安装即可
[root@localhost httpd-2.4.48]# yum install gcc* -y
中间省略
作为依赖被升级:
glibc.x86_64 0:2.17-324.el7_9 glibc-common.x86_64 0:2.17-324.el7_9 libgcc.x86_64 0:4.8.5-44.el7
libgomp.x86_64 0:4.8.5-44.el7 libstdc++.x86_64 0:4.8.5-44.el7
[root@localhost httpd-2.4.48]# ./configure \
> --prefix=/usr/local/apache \
checking for gcc option to accept ISO C99... -std=gnu99
checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
pcre没装安装即可
[root@localhost httpd-2.4.48]# yum install pcre* -y
中间省略
已安装:
pcre-devel.x86_64 0:8.32-17.el7 pcre-static.x86_64 0:8.32-17.el7
pcre-tools.x86_64 0:8.32-17.el7 pcre2-devel.x86_64 0:10.23-2.el7
pcre2-static.x86_64 0:10.23-2.el7 pcre2-tools.x86_64 0:10.23-2.el7
pcre2-utf16.x86_64 0:10.23-2.el7 pcre2-utf32.x86_64 0:10.23-2.el7
完毕!
[root@localhost httpd-2.4.48]# ./configure \
> --prefix=/usr/local/apache \
中间省略
Server Version: 2.4.48
Install prefix: /usr/local/apache
C compiler: gcc -std=gnu99
CFLAGS: -pthread
CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE
LDFLAGS:
LIBS:
C preprocessor: gcc -E
[root@localhost httpd-2.4.48]# make
等待编译完成
/modules/lua -I/bianyi/httpd-2.4.48/modules/proxy -I/bianyi/httpd-2.4.48/modules/http2 -I/bianyi/httpd-2.4.48/modules/session -I/bianyi/httpd-2.4.48/modules/ssl -I/bianyi/httpd-2.4.48/modules/test -I/bianyi/httpd-2.4.48/server -I/bianyi/httpd-2.4.48/modules/md -I/bianyi/httpd-2.4.48/modules/arch/unix -I/bianyi/httpd-2.4.48/modules/dav/main -I/bianyi/httpd-2.4.48/modules/generators -I/bianyi/httpd-2.4.48/modules/mappers -prefer-pic -c mod_rewrite.c && touch mod_rewrite.slo
/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -std=gnu99 -pthread -o mod_rewrite.la -rpath /usr/local/apache/modules -module -avoid-version mod_rewrite.lo
make[4]: 离开目录“/bianyi/httpd-2.4.48/modules/mappers”
make[3]: 离开目录“/bianyi/httpd-2.4.48/modules/mappers”
make[2]: 离开目录“/bianyi/httpd-2.4.48/modules”
make[2]: 进入目录“/bianyi/httpd-2.4.48/support”
make[2]: 离开目录“/bianyi/httpd-2.4.48/support”
make[1]: 离开目录“/bianyi/httpd-2.4.48”
[root@localhost httpd-2.4.48]# make install
等待编译完成
Installing man pages and online manual
mkdir /usr/local/apache/man
mkdir /usr/local/apache/man/man1
mkdir /usr/local/apache/man/man8
mkdir /usr/local/apache/manual
make[1]: 离开目录“/bianyi/httpd-2.4.48”
[root@localhost bin]# /usr/local/apache/bin/apachectl
#启动服务
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
[root@localhost bin]# netstat -ntap |grep 80
tcp6 0 0 :::80 :::* LISTEN 56463/httpd
[root@localhost bin]# systemctl stop firewalld.service
[root@localhost bin]# setenforce 0
[root@localhost bin]# netstat -ntap |grep 80
tcp6 0 0 :::80 :::* LISTEN 56463/httpd