Linux应用程序基础

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一 、应用程序和系统命令的关系

1、系统命令

文件位置 :一般在/bin和/sbin目录中,或为Shell内部命令
主要用途:完成对新系统的基本管理工作,例如IP 配置工具
使用环境:一般只在字符操作界面中运行
运行格式:一般包括命令字、选项、参数

2、应用程序

文件位置 :一般在/usr/bin和/usr/sbin目录中
主要用途:完成相对独立的其他符咒任务,例如网页浏览器
使用环境:根据实际需要,有些程序可在图形界面中运行
运行格式:通畅没有固定的执行格式

二、典型应用程序的目录结构

文件类型保存目录
普通执行程序文件/usr/bin
服务器执行程序文件和管理程序文件/usr/sbin
应用程序配置文件/etc
日志文件/var/log
应用程序参考文档文件/usr/share/doc
应用程序手册页文件/usr/local/share/man

三、常见的软件包分装类型

文件类型保存目录
RPM软件包扩展名为“.rpm”
DEB软件包扩展名为“.deb”
源代码软件包一般为“.tar.gz”、“tar.bz2”等格式安装包
绿色免安装的软件包软件包的扩展名不一,以TarBall格式居多,在压缩包内提供已编译号的可执行程序文件,解开压缩包后的文件即可直接使用

1、rpm命令格式

rpm命令能够实现几乎所有对RPM软件包的管理功能
执行“man rpm”命令可以获得关于rpm命令的详细帮助信息

2、rpm命令功能

查询、验证RPM软件包的相关信息
安装、升级、卸载RPM软件包
维护RPM数据库信息等综合管理操作

1、rpm  -q 软件名                ★★#查询指定软件是否已安装
2、rpm  -qi 软件名               #显示已安装的指定软件的详细信息
3、rpm  -ql 软件名               #显示已安装的指定软件的文件列表
4、rpm  -qc 软件名               ★★#列出已安装的指定软件的配置文件
5、rpm  -qd 软件名               ★★#列出已安装的指定软件的软件包文档所在位置
6、rpm -qR 软件名                #列出已安装的指定软件的以来的软件包及文件
7、rpm  qF 文件/目录             #查询已安装的指定软件属于哪个安装包
8、rpm -qa                      ★★#显示当前系统中以rpm方式安装的偶有软件列表
9、rpm -qf /user/bin/paswd      #查看指定文件或目录是哪个软件包所安装的

3、查询未安装的RPM软件包文件中信息

rpm -qpi RPM包文件名         #查询指定软件包的详细信息
rpm -qpl RPM包文件名         #查询指定软件包的文件列表
rpm -qpc RPM包文件名         #查询指定软件包的配置文件
rpm -qpd RPM包文件名         #查询指定软件包的软件包文档的位置

4、安装、升级、卸载RPM软件包

格式:

rpm 【选项】 RPM包文件

rpm -ivh RPM 包文件

常用选项

-i 安装一个新的RPM安装包
-U 升级某个软件包,若未安装过,则进行安装
-F 升级某个软件包,如未安装过,则放弃安装
-h 在安装或升级软件包的过程中,以”#“号显示安装进度。
-v 显示软件安装过程中的详细信息。
–force 强制安装某个软件包,比如要安装版本更旧的软件包
-e 卸载指定名称的软件包
–nodeps 在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系。

5、维护RPM数据库

1、重建RPM数据库

当RPM数据库发生损坏,可通过重建RPM数据库修复
rpm --rebuilddb 或者 rpm --initdb

2、导入验证公钥

在没有验证公钥之前,安装光盘中的一部分RPM软件包时会报错,需要向RPM数据库中导入位于光盘根目录下的公钥文件

mount /dev/sr0 /mnt/
rpm --import /mnt/RPM-GPG-KEY-CentOS-7

辅助选项
1.–nodeps就是安装时不会检查依赖关系,比如你这个rpm需要A,但是你没有装A,这样你的包就安装不了,用了–nodeps你就能装上了。
2.–force就是强制安装,比如你装过这个rpm的版本1,如果你想安装这个rpm的版本2,就需要用–force强制安装。
–force、–nodeps、-h、-v

四、配置本地yum源仓库

安装源代码软件包需要编译安装,需要安装支持c和c++程序语言的编译器,如gcc、gcc-c++、make 如果使用rpm方式安装,则需要先安装多个依赖包,这样会很繁琐,这里可以使用yum方式来进行一键安装。
先配置本地yum源仓库(最好保存目录是空的)
本地yum仓库的小结
1、yum是一个半自动化的下载、更新、安装的工具 2、yum下载、安装的时候,默认指向的位置是公共仓库,通过识别/etc/yum.repos.d 目录下的(Centos-*.repo yum)源文件(文件中指向了Centos的yum公共仓库位置) 有时候我们网络不佳或者无网环境,就需要将yum默认指向的位置改为本地yum仓库 如何配置本地yum仓库 必要的时候,可以在机器空闲的时候,来更新自己的本地yum仓库中的 *.rpm包的版本

关键点
1、/etc/yum.repos.d 目录下有很多*.repo文件(将原本指向公共仓库的yum源文件,修改为指向本地的yum源文件) 2、考虑到缓存 需要先清空缓存,再加载我们自定义的本地yum仓库的配置yum clean all && yum makecache

细致化:

[root@zhb mnt]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@zhb mnt]# cd /etc/yum.repos.d/
[root@zhb yum.repos.d]# ls
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo         CentOS-Media.repo
CentOS-Debuginfo.repo  CentOS-Sources.repo
[root@zhb yum.repos.d]# mkdir bak
[root@zhb yum.repos.d]# ls
bak               CentOS-Debuginfo.repo  CentOS-Sources.repo
CentOS-Base.repo  CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo    CentOS-Media.repo
[root@zhb yum.repos.d]# mv CentOS-* bak/
[root@zhb yum.repos.d]# ls
bak
[root@zhb yum.repos.d]# vim local.repo
[root@zhb yum.repos.d]# ls
bak  local.repo
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: local
Cleaning up list of fastest mirrors
Other repos take up 1.1 G of disk space (use --verbose for details)
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# yum makecache
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
local                                           | 3.6 kB     00:00     
(1/4): local/group_gz                             | 166 kB   00:00     
(2/4): local/filelists_db                         | 3.2 MB   00:00     
(3/4): local/primary_db                           | 3.1 MB   00:00     
(4/4): local/other_db                             | 1.3 MB   00:00     
元数据缓存已建立
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# yum install -y mariadb
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 mariadb.x86_64.1.5.5.60-1.el7_5 将被 安装
--> 解决依赖关系完成

依赖关系解决

=======================================================================
 Package       架构         版本                                大小
=======================================================================
正在安装:
 mariadb       x86_64       1:5.5.60-1.el7_5         local       8.9 M

事务概要
=======================================================================
安装  1 软件包

总下载量:8.9 M
安装大小:49 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 1:mariadb-5.5.60-1.el7_5.x86_64                    1/1 
  验证中      : 1:mariadb-5.5.60-1.el7_5.x86_64                    1/1 

已安装:
  mariadb.x86_64 1:5.5.60-1.el7_5                                      

完毕!
[root@zhb yum.repos.d]# 
[root@zhb yum.repos.d]# 

在这里插入图片描述

测试
在断网环境下,是否能正常“安装”软件包 ifdown ens33
是否能“安装”成功 yum install -y httpd / yum install mariadb -y
以上完成本地yum仓库的配置

实验过程

[ZHB@zhb ~]$ ifdown ens33
用户不能控制这一设备。
[ZHB@zhb ~]$ su root
密码:
[root@zhb ZHB]# ifdown ens33
成功断开设备 'ens33'
[root@zhb ZHB]# yum install -y httpd / yum install mariadb -y
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 filesystem-3.2-25.el7.x86_64 已安装并且是最新版本
软件包 yum-3.4.3-161.el7.centos.noarch 已安装并且是最新版本
没有可用软件包 install。
软件包 1:mariadb-5.5.60-1.el7_5.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-88.el7.centos 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-88.el7.centos,它被软件包 httpd-2.4.6-88.el7.centos.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-88.el7.centos.x86_64 需要
--> 正在检查事务
---> 软件包 httpd-tools.x86_64.0.2.4.6-88.el7.centos 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

===========================================================================
 Package          架构        版本                                  大小
===========================================================================
正在安装:
 httpd            x86_64      2.4.6-88.el7.centos         local      2.7 M
为依赖而安装:
 httpd-tools      x86_64      2.4.6-88.el7.centos         local       90 k
 mailcap          noarch      2.1.41-2.el7                local       31 k

事务概要
===========================================================================
安装  1 软件包 (+2 依赖软件包)

总下载量:2.8 M
安装大小:9.6 M
Downloading packages:
---------------------------------------------------------------------------
总计                                           96 MB/s | 2.8 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : mailcap-2.1.41-2.el7.noarch                            1/3 
  正在安装    : httpd-tools-2.4.6-88.el7.centos.x86_64                 2/3 
  正在安装    : httpd-2.4.6-88.el7.centos.x86_64                       3/3 
  验证中      : httpd-tools-2.4.6-88.el7.centos.x86_64                 1/3 
  验证中      : mailcap-2.1.41-2.el7.noarch                            2/3 
  验证中      : httpd-2.4.6-88.el7.centos.x86_64                       3/3 

已安装:
  httpd.x86_64 0:2.4.6-88.el7.centos                                       

作为依赖被安装:
  httpd-tools.x86_64 0:2.4.6-88.el7.centos  mailcap.noarch 0:2.1.41-2.el7 

完毕!
[root@zhb ZHB]# 

完成本地yum仓库的配置

yum常用的操作命令

yum -y install 软件名     #安装、升级软件包,-y 选项表示自动确认安装依赖关系
yum -y remove 软件名      #卸载软件包,可自动解决其依赖关系
yum -y update 软件名      #升级软件包
yum list                  #查询软件包列表
yum list installed        #查询系统中已安装的软件包
yum list available        #查询仓库中尚未安装的软件包
yum list update           #查询可以升级版本的软件包

yum info 软件名           #查询软件包的描述信息
yum info httpd

yum search [all] 关键词   #根据某个关键词来查找相关的软件包
 
yum whatprovides 命令     #查询命令属于哪个软件包

yum install 包名 -y --downloadonly --downloaddir=/tmp/   #下载RPM包到指定目录
yum history 查看历史记录清单,后面可以加undo +ID数可以卸载器软件并解决依赖关系
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值