目录
一.Linux系统应用程序
1.典型应用程序的目录结构
所在目录 | 文件类型 |
---|---|
/usr/bin | 普通执行程序文件 |
/usr/sbin | 服务器执行程序文件和管理程序文件 |
/etc | 应用程序配置文件 |
/var/log | 日志文件目录 |
/var/share/doc | 应用程序参考文档文件 |
/usr/local/share/man | 应用程序手册页文件 |
2.常见软件包封装类型
文件类型 | 保存目录 |
---|---|
RPM软件包 | 扩展名为“.rpm" |
DEB软件包 | 扩展名为“.deb" |
源代码软件包 | 一般为“.tar.gz"等格式的压缩包".tar.bz2"包含程序的原始代码 |
绿色免安装的软件包 | 软件包的扩展名不一,以TarBall格式的居多 在压缩包内提供已编译好的执行程序文件 解开压缩包后的文件即可直接使用 如“子网掩码计算器” |
二.RPM软件包管理
1.RPM是什么?
RPM(Red-Hat package Manager):
- 由Red Hat公司提出, 被众多Linux发行版所采用
- 建立统一的文件数据库
- 详细记录软件包安装、卸载、升级等变化信息
- 自动分析软件包依赖关系
2.RPM一般命名格式
bash-4.1.2-15.el6_4.x86_64.rpm
3.RPM安装包从哪里来?
- 官网下载 或者 自研
- 在安装光驱中 ,约4.7G 中,3个G 都是安装包。
-
4.挂载的定义
系统内部的 一个文件夹 和 硬件设备关联,只要访问文件夹 等于访问硬件设备上的空间。(把硬盘 变成文件 让系统识别并使用 硬盘的空间)
外来的硬件设备需要连接在 linux系统 上使用, 必须挂载!
挂载格式:
mount 硬件设备 文件夹
硬件文件:
/dev/sr0 或者 /dev/cdrom 光驱 硬盘
解挂载格式:
umount 挂载的文件夹
5.查询软件包是否已安装
5.1查看已安装的软件包
查看已安装的软件包格式:
rpm -q 软件名
选项 | 功能 |
---|---|
-q | 查询已安装的软件都要加q |
-qi | 查看指定软件详细信息 |
-ql | 显示指定软件包的所有文件列表 |
-qc | 显示指定软件包的配置文件 |
-qa | 显示当前系统中以 RPM 方式安装的所有软件列表 |
5.2 查看未安装的软件包
查看未安装的软件包格式:
rpm -qp 软件名
6.用RPM安装和卸载软件
6.1 安装
格式:
rpm -ivh 软件名
RPM软件包安装软件 注意依赖关系
-i | 安装 |
-v | 过程 |
-h | 人性化 |
6.2 卸载
格式:
rpm -e 软件名
7.用yum安装和卸载软件
7.1 安装
yum install 软件 -y
#安装软件
7.2 卸载
yum remove 软件
#卸载软件
三.搭建yum仓库
配置本地yum仓库过程如下:
1.配置虚拟机
2.所需命令(含解释)
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进行验证
进入vim编辑器后
保存并退出vim编辑器后
3.可能会出现的问题
/var/run/yum.pid 已被锁定,PID 为 2550 的另一个程序正在运行。
使用Ctrl+c停止后
输入解决命令:rm -f /var/run/yum.pid 或者 kill -9 2550(PID号)
即可解决,继续如上输入命令
四.编译安装
1.编译安装基本介绍
大部分是c语言开发的,更方便的使用
-
软件版本比较新,新功能,修复bug
-
可以自行定义配置文件的路径
-
源码可能有100个功能,红帽认为你可能不需要会自行处理砍掉,自行定制50
程序包编译安装:
源代码-->预处理-->编译-->汇编-->链接-->执行
多文件:文件中的代码之间,很可能存在跨文件依赖关系
虽然有很多开源软件将软件打成包,供人们使用,但并不是所有源代码都打成包,如果想使用开源软件,可能需要自已下载源码,进行编译安装。另外即使提供了包,但是生产中需要用于软件的某些特性,仍然需要自行编译安装。但是利用源代码编译安装是比较繁琐的,庆幸的是有相关的项目管理工具,可以大大减少编译过程的复杂度。
2.编译安装所需命令
预先安装软件
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