软件包管理

本文介绍了Linux系统中软件包的分类,包括二进制包、源码包和二进制源码包,并详细讲解了如何使用rpm和yum工具进行管理。通过rpm命令安装、卸载、更新软件包,以及导入公钥、检查签名的操作。此外,文章还讨论了yum工具的优点和缺点,如自动解决依赖、缓存功能,并展示了yum安装、卸载、升级软件包的语法。最后,探讨了源码安装的过程,包括配置、编译和安装步骤,以及Linux系统的yum仓库及其创建与使用。
摘要由CSDN通过智能技术生成
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

3.10.0
中间的数字为偶数时表示内核用的稳定版,奇数为开发版

一、软件包的分类

  • 二进制包
  • 源码包
  • 二进制源码包

二、如何管理rpm包

rpm(redhat package manager) 红帽软件包管理器

rpm也是红帽二进制包的名称标识

①语法:

  • 安装:rpm -ivh 软件包名
  • 卸载:rpm -e 软件名 [–nodeps(忽略依赖) --force(表示强制)]
  • 更新:rpm -Uvh 软件包名 / rpm -Fvh 软件包名

选项说明:

-v 输出详细信息

-h 打印散列标记,一般和-v一起使用

-U 升级软件包,如果没有安装该软件,会自动帮你安装

-F 升级软件包,如果没有安装该软件,不会自动帮你安装

②常用选项:

查看已经安装的所有的rpm包
rpm -qa 软件名

查看已安装的软件生成的文件列表
rpm -ql 软件名

查看文件的所属包名
rpm -qf 文件名

查看已经安装软件生成的的文档文件
rpm -qd 软件名

查看已经安装软件生成的配置文件
rpm -qc 软件名

查看已经安装软件的详细信息
rpm -qi 软件名

查看未安装的rpm包里的文件列表
rpm -qlp 软件包名

查看未安装的rpm包的文件信息
rpm -api 软件包名



--force		表示强制
rpm -ivh 软件包 --force		强制安装软件包
rpm -e 软件包名 --force	  强制卸载软件包

--nodeps		忽略依赖关系
rpm -ivh 软件包 --nodeps	忽略依赖关系安装
rpm -e 软件包 --nodeps		忽略依赖关系卸载

③掌握:

rpm --import key_file 导入公钥用于检查rpm文件的签名

rpm --checksig package.rpm 检查rpm包的签名

三、yum工具管理

①yum工具安装的优缺点

yum相对rpm具有自能解决依赖,功能比较多,可以缓存软件包等优点

缺点:查询的速度比较慢

CentOS8中默认使用dnf

②yum常用语法:

  • 安装软件:yum install 软件名

  • 安装组:yum groupinstall “包组名”

  • 卸载软件:yum remove 软件名

  • 卸载组: yum groupremove

  • 升级包:yum update 软件名(如果未安装,不会直接安装)
    yum update 会升级所有软件包及内核

  • 在yum源中搜索软件包:yum list | grep 软件名
    未安装的包:
    [root@localhost ~]# yum list | grep zsh
    zsh.x86_64 5.0.2-33.el7 base
    已安装:
    [root@localhost ~]# yum list | grep zsh
    zsh.x86_64 5.0.2-33.el7 @base

    已安装base源前面多了个@
    
  • 查看软件包组:yum grouplist

  • 查看命令属于哪个rpm包:
    yum provides *bin/命令名

可选参数:-y 非交互式,直接确认安装

四、yum仓库

①作用:

  • 用于分发软件
  • 用于服务器软件安装

②分类:

  • 本地yum仓库
  • 远程yum仓库

③创建本地yum源

a.使用光盘制作本地yum源

.d结尾的目录为:片段配置文件的保存目录
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo

步骤:
cd /etc/yum.repos.d
vim cdrom.repo

[cdrom]##---源标识
name=local cdrom##---源名称
baseurl=file:///mnt(写到包含repodata)
enabled=1(开启仓库)
gpgcheck=0(是否开启安装检查)

清空yum的元数据缓存
yum clean all
重建yum元数据缓存
yum makecache
查看可用yum仓库
yum repolist

b.使用软件包目录制作本地yum源

安装createrepo工具
[root@localhost ~]# yum provides *bin/createrepo

根据搜索出来的结果选择安装包
[root@localhost ~]# yum -y install createrepo-0.9.9-28.el7.noarch

[root@localhost ~]# createrepo /root/smartyum
Spawning worker 0 with 4021 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

[root@localhost ~]# vim /etc/yum.repos.d/smartyum.repo
----
配置本地yum源
----
yum clean all
yum makecache
yum repolist

④创建远程yum源服务器

1、关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# firewall-cmd --state
not running

2、关闭selinux
方法一:修改配置文件
[root@localhost ~]# vim /etc/selinux/config
把SELINUX=enforcing改为SELINUX=diasbled
方法二:使用非交互式方式改
sed -i ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3、验证方法:
方法一:
[root@localhost ~]# getenforce
Disabled
方法二:
[root@localhost ~]# sestatus
SELinux status:                 disabled




1、安装apache
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# cp /mnt/Packages/* /var/www/html/
[root@localhost www]# createrepo /var/www/html/

2、开启Apache服务并设为开机自启动
[root@localhost www]# systemctl enable httpd
[root@localhost www]# systemctl start httpd

3、yum源的准备
[root@localhost www]# vim /etc/yum.repos.d/httpyum.repo
[root@localhost www]# cat /etc/yum.repos.d/httpyum.repo
[httpdyum]
name=http 216.130
baseurl=http://192.168.216.130
enabled=1
gpgcheck=0

4、检验
yum clean all
yum makecache
yum repolist

⑤使用网络上的开源软件镜像站

a.阿里云开源镜像站

b.清华大学开源软件镜像站

⑥使用yum的缓存

cat /etc/yum.conf

[main]
  2 cachedir=/var/cache/yum/$basearch/$releasever
  3 keepcache=0   ##为1时开启缓存,0关闭
  4 debuglevel=2
  5 logfile=/var/log/yum.log
  6 exactarch=1
  7 obsoletes=1
  8 gpgcheck=1
  9 plugins=1
 10 installonly_limit=5
 11 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.cen    tos.org/bug_report_page.php?category=yum
 12 distroverpkg=centos-release

⑦扩展

开机自动挂载磁盘:

[root@localhost ~]# vim /etc/fstab

/dev/cdrom                                /mnt                  iso9660   defaults 0 0

设备名	挂载目录	磁盘格式	

五、源码安装

①源码软件包的定义:

  • 指程序员写的代码
  • 不能直接被计算机运行
  • 需要编译后才能执行

②安装:

a.对文件进行配置

--prefix=...  /usr/local    软件家目录
--bindir=...  $prefix/bin   命令的目录
--etcdir=...  $prefix/etc   配置文件的目录
--mandir=...  $prefix//share/man   文档路径	
--locale=...  $prefix/share/locale 语言编码
...

b.编译:

make :编译当前目录中所有的c格式的源码包

c.安装:

make install

d.卸载:

1、直接删除安装目录及里面的子文件
2、进入安装目录
make uninstall   ##卸载安装
make distclean   ##卸载编译和配置过程




 [root@localhost axel-1.0a]# rm -rf /opt/axel
 [root@localhost axel-1.0a]# vim /etc/profile
 在尾行删除如下内容:
 export PATH=$PATH:/opt/axel/bin
 [root@localhost axel-1.0a]# source /etc/profile

六、二进制归档压缩包安装

[root@localhost softwarepkg]# tar -xf jdk-8u191-linux-x64.tar.gz
[root@localhost softwarepkg]# ls
axel-1.0a         jdk1.8.0_191                xlockmore-5.31-2.el6.x86_64.rpm
axel-1.0a.tar.gz  jdk-8u191-linux-x64.tar.gz
[root@localhost softwarepkg]# cd jdk1.8.0_191/
[root@localhost jdk1.8.0_191]# ls
bin             jre      README.html                         THIRDPARTYLICENSEREADME.txt
COPYRIGHT       lib      release
include         LICENSE  src.zip
javafx-src.zip  man      THIRDPARTYLICENSEREADME-JAVAFX.txt


添加环境变量
[root@localhost local]# tail -2 /etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=${JAVA_HOME}/bin:$PATH

[root@localhost local]# java -version
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值