ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

rpm包管理 yum包管理与编译安装

2021-03-16 21:53:26  阅读:120  来源: 互联网

标签:httpd 管理 root etc yum 2.4 rpm CentOS8


rpm 包管理 程序包管理yum与编译安装

1、rpm 包管理

1.1 程序包安装

格式:

rpm {-i|--install} [install-options] PACKAGE_FILE...

选项:

-v:     verbose
-vv:
-h:     以#显示程序包执行进度
--nodeps:   忽略依赖关系

#常用组合
rpm -ivh PACKAGE_FILE

1.2 升级和降级

rpm包升级

rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
rpm {-F|--freshen} [install-options] PACKAGE_FILE...

--oldpackage: 降级
#常用组合
rpm -Uvh PACKAGE_FILE...
rpm -Fvh PACKAGE_FILE...

-U:安装有旧程序包,则升级,如果不存在旧程序包,则安装;

-F:安装有旧程序包,则升级,如果不存在旧程序包,则不执行升级操作

1.3 程序包查询

rpm {-q|--query} [select-options] [query-optinons]
[select-options]
-a:     所有包
-f:     查看指定的文件由哪个程序包安装生成
-p rpmfile: 针对未安装的程序包文件做查询

[query-options]
-c:     查询程序的配置文件
-d:     查询程序的文档
-i:     查询程序信息
-l:     查看指定的程序包安装后生成的所有文件

#常见用法
-qa PACKAGE
-qi PACKAGE
-qc PACKAGE
-ql PACKAGE
-qf PACKAGE

1.4 包卸载

格式:

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_FILE... 

2、 yum 包管理

2.1 显示仓库列表

yum repolist [all|enabled|disabled]

2.2 安装程序包

yum install package1 [package2] [...]
yum reinstallpackage1 [package2] [...]  #重新安装

2.3 卸载程序包

yum remove | erase package1 [package2] [...]

2.4 升级和降级

yum update package1 [package2] [...]    升级
yum downgrade package1 [package2] [...]     降级

2.5 查询

查看程序包信息:

yum info package1

查看指定的特性(某个文件)是由哪个程序包提供:

yum provides | whatprovides feature1 [feature2] [...]

注意:文件要写全路径,而不只是文件名,否则无法查询。

以指定的关键字搜索程序包及信息

yum search string1 [string2] [...]

2.6 仓库缓存

清理目录/var/cache/yum/缓存

yum clean all

构建缓存

yum makecache

2.7 yum仓库实例

  • 自建yum仓库,分别为网络源和本地源

网络源:

[root@CentOS8 yum.repos.d]#mkdir backup
[root@CentOS8 yum.repos.d]#mv /etc/yum.repos.d/*.repo backup/

[root@CentOS8 yum.repos.d]#cat Netinstall.repo 
[AppStream]
name=Netinstall AppStream 
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8/AppStream/x86_64/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[BaseOS]
name=Netinstall BaseOS
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[Extras]                                                                                             name=Netinstall Extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/8/extras/x86_64/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[Epel]                                                                                               
name=Netinstall Epel
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/8/Everything/x86_64/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8

本地源:

[root@CentOS8 yum.repos.d]#mount /dev/sr0 /media
[root@CentOS8 yum.repos.d]#cat local.repo 
[BaseOS]
name=BaseOS
baseurl=file:///media/BaseOS
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

[Appsteam]
name=Appsteam
baseurl=file:///media/AppStream
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

3、 编译安装

最小化安装的系统建议安装以下相关包

yum -y install gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree lsof tcpdump wget net-tools iotop bc bzip2 zip unzip nfs-utils man-pages

3.1 编译安装

  • 第一步:解压源码程序包,进入解压后的源码目录, 运行configure脚本,生成Makefile文件

常用选项:

#安装路径设定
--prefix=/PATH              指定默认安装位置,默认为/usr/local
--sysconfdir=/PATH          配置文件安装位置
  • 第二步:make
  • 第三步:make install

3.2 编译安装实例

  • 编译安装http2.4,实现可以正常访问,并将编译步骤和结果提交。
#安装依赖包
[root@CentOS8 local]#dnf install gcc make apr-devel apr-util-devel pcre-devel openssl-devel redhat-rpm-config 
#下载源码包
[root@CentOS8 src]#wget https://mirrors.bfsu.edu.cn/apache//httpd/httpd-2.4.46.tar.bz2
#解压源码包
[root@CentOS8 src]#tar xvf httpd-2.4.46.tar.bz2 -C /usr/local/src
#配置安装路径
[root@CentOS8 httpd-2.4.46]#cd/usr/local/src/httpd-2.4.46
[root@CentOS8 httpd-2.4.46]#./configure --prefix=/apps/httpd46 --sysconfdir=/etc/httpd46 --enable-ssl
onfig.status: creating support/split-logfile
config.status: creating build/rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands
configure: summary of build options:

    Server Version: 2.4.46
    Install prefix: /apps/httpd46
    C compiler:     gcc
    CFLAGS:           -pthread  
    CPPFLAGS:        -DLINUX -D_REENTRANT -D_GNU_SOURCE  
    LDFLAGS:           
    LIBS:             
    C preprocessor: gcc -E
[root@CentOS8 httpd-2.4.46]#echo $?
0
#编译并安装
[root@CentOS8 httpd-2.4.46]#make -j 4
[root@CentOS8 httpd-2.4.46]#echo $?
0
[root@CentOS8 httpd-2.4.46]#make install
#启动服务
[root@CentOS8 httpd-2.4.46]#/apps/httpd46/bin/apachectl start
#指定用apache用户运行
[root@CentOS8 httpd-2.4.46]#useradd -r -s /sbin/nologin -d /var/www -c Apache -u 48 apache
[root@CentOS8 httpd-2.4.46]#vim /etc/httpd46/httpd.conf
user apache
group apache
#配置环境变量
[root@CentOS8 httpd-2.4.46]#echo 'PATH=/apps/httpd46/bin:$PATH' > /etc/profile.d/httpd46.sh
[root@CentOS8 httpd-2.4.46]#. /etc/profile.d/httpd46.sh 
#生效、验证
[root@CentOS8 httpd-2.4.46]#apachectl restart
[root@CentOS8 httpd-2.4.46]#ps aux| grep httpd
apache     18229  0.0  0.9 2110168 13692 ?       Sl   21:01   0:00 /apps/httpd46/bin/httpd -k start
apache     18230  0.1  0.9 2110168 13692 ?       Sl   21:01   0:00 /apps/httpd46/bin/httpd -k start
apache     18231  0.0  0.9 2110168 13688 ?       Sl   21:01   0:00 /apps/httpd46/bin/httpd -k start
[root@CentOS8 httpd-2.4.46]#curl http://10.0.0.8
<html><body><h1>Welcome to Apache!</h1></body></html>

4、sed 实例

  • 利用sed 取出ifconfig命令中本机的IPv4地址
[root@CentOS8 yum.repos.d]#ifconfig ens33 |sed -nr '2s/^[^0-9]+([0-9.]+).*$/\1/p'
10.0.0.8
  • 删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
[root@CentOS8 yum.repos.d]#sed -i.bak '/^[#]/d' /etc/fstab 
[root@CentOS8 yum.repos.d]#cat /etc/fstab

UUID=907244e6-ae0b-4e55-a0f3-d1e8bf76dd14 /                       xfs     defaults        0 0
UUID=14eec576-4634-4313-8680-df44abdae04f /boot                   xfs     defaults        0 0
UUID=cef59b88-244a-4151-927e-4f091bb6ad3f /data                   xfs     defaults        0 0
UUID=a7e66d1a-4823-41e7-9628-a68e06ef71d4 none                    swap    defaults        0 0
  • 处理/etc/fstab路径,使用sed命令取出其目录名和基名
#目录名
[root@CentOS8 etc]#echo /etc/fstab | sed -nr 's#(.*)/([^/]+)/?#\1#p'
/etc
#基名
[root@CentOS8 etc]#echo /etc/fstab | sed -nr 's#(.*)/([^/]+)/?#\2#p'
fstab

标签:httpd,管理,root,etc,yum,2.4,rpm,CentOS8
来源: https://blog.51cto.com/13618052/2662247

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有