Linux——软件管理

目录

Linux应用程序基础

应用程序与系统命令的关系

典型应用程序的目录结构

常见的软件包封装类型

RPM包管理机制

使用YUM源

使用YUM源管理软件的步骤

1、配置YUM源配置文件

[2、清空YUM源缓存 yum clean all](#2、清空YUM源缓存 yum clean all)

[3、安装软件 yum install httpd](#3、安装软件 yum install httpd)

[基本 yum 命令](#基本 yum 命令)

使用yum命令安装本地rpm包

[使用第三方 Yum](#使用第三方 Yum)

[RPM包管理命令 ------ rpm](#RPM包管理命令 —— rpm)

查询RPM软件信息

查询已安装的RPM软件信息

查询未安装的RPM包文件

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

卸载指定的RPM软件

源代码编译概述

源码编译安装的基本过程

[1. 解包](#1. 解包)

[2. 配置](#2. 配置)

[3. 编译](#3. 编译)

[4. 安装](#4. 安装)


Linux应用程序基础

应用程序与系统命令的关系

文件位置

  • 系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
  • 应用程序:通常在/usr/bin和/usr/sbin目录中

主要用途

  • 系统命令:完成对系统的基本管理工作,例如IP配置工具
  • 应用程序:完成相对独立的其他辅助任务,例如网页浏览器

适用环境

  • 系统命令:一般只在字符操作界面中运行
  • 应用程序:根据实际需要,有些程序可在图形界面中运行

运行格式

  • 系统命令:一般包括命令字、命令选项和命令参数
  • 应用程序:通常没有固定的执行格式

典型应用程序的目录结构

常见的软件包封装类型

RPM包管理机制

RPM Package Manager 由Red Hat公司提出,被众多Linux发行版所采用。建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系。

RPM软件包 软件素材参考:http://rpmfind.net

一般命名格式:

使用YUM源

使用YUM源管理软件的方式

  • 图形界面------添加删除软件工具
  • 命令行------yum命令

使用YUM源管理软件的前提:配置YUM源配置文件

使用YUM源管理软件的步骤

1、配置YUM源配置文件

存放目录/etc/yum.repos.d 命名规则***.repo,

如:dvd.repo 文件格式示例:

[dvd]

Enabled=1

name=dvd

baseurl=http://instructor.example.com/pub/rhel6/dvd

baseurl=file:///mnt/dvd

gpgcheck=0

2、清空YUM源缓存 yum clean all

3、安装软件 yum install httpd

Yum 是一个强大的命令行工具,可用于更加灵活的管理(安装,更新,删除,查询)软件包。

基本 yum 命令

1.yum help 显示使用信息

2.yum list 列出软件包

3.yum search keyword 搜索关键字

4.yum info packagename 列出软件包详细信息

5.yum install packagename 安装软件包

6.yum remove packagename 删除软件包

7.yum update packagename 升级软件包

管理 yum 组件组

1.yum grouplist 列出所有可用组

2.yum groupinfo 提供特定组的信息

3.yum groupinstall 安装软件包组

4.yum groupupdate 更新软件包组

5.yum grouperase 删除软件包组

使用yum命令安装本地rpm包

yum localinstall ***.rpm

使用第三方 Yum

将文件放到 /etc/yum.repos.d/ 目录中,可以启用对新的第三方存储库的支持,存储库配置文件必须以.repo结尾。

配置文件示例 /etc/yum.repos.d/updates.repo

[updates] name=Red Hat Updates

baseurl=ftp://instructor.example.com/pub/rhel6/Errata

enabled=1

gpgcheck=0

RPM包管理命令 ------ rpm

主要功能

    1. 查询RPM软件、包文件的相关信息
    1. 安装、升级、卸载RPM软件包
    1. 维护RPM数据库信息

查询RPM软件信息

查询已安装的RPM软件信息

格式:rpm -q[子选项] [软件名]

用法:结合不同的子选项 完成不同查询

-qa:查看系统中已安装的所有RPM软件包列表

-qi:查看指定软件的详细信息

-ql:查询指定软件包所安装的目录、文件列表

-qc:仅显示指定软件包安装的配置文件

-qd:仅显示指定软件包安装的文档文件

查询文件/目录属于哪个RPM软件 格式:rpm -qf 文件或目录名

ex:

查询是否已安装有bash软件包

[root@localhost ~]# rpm -q

bash bash-3.1-16.1

[root@localhost ~]# rpm -qa | grep bash

bash-3.1-16.1

查询vim是由哪个软件包安装的

[root@localhost ~]# rpm -qf /usr/bin/vim

vim-enhanced-7.0.109-3

查询dhcp软件包安装的文件列表

[root@localhost ~]# rpm -ql dhcp

/etc/dhcpd.conf

/etc/rc.d/init.d/dhcpd

查询未安装的RPM包文件

格式:rpm -qp[子选项] RPM包文件

用法:结合不同的子选项 完成不同查询

-qpi:通过.rpm包文件查看该软件的详细信息

-qpl:查看.rpm安装包内所包含的目录、文件列表

-qpc:查看.rpm安装包内包含的配置文件列表

-qpd:查看.rpm安装包内包含的文档文件列表

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

安装或升级RPM软件

格式:rpm [选项] RPM包文件...

用法:不同选项适用于不同情况

-i:安装一个新的rpm软件包

-U:升级某个rpm软件,若原本未装,则进行安装

-F:更新某个rpm软件,若原本未装,则放弃安装

卸载指定的RPM软件

格式:rpm -e 软件名

辅助选项

--force:强制安装所指定的rpm软件包

--nodeps:安装、升级或卸载软件时,忽略依赖关系

-h:以"#"号显示安装的进度

-v:显示安装过程中的详细信息

ex: rpm -ivh lynx-2.8.5-28.1.i386.rpm

rpm -Uvh /media/cdrom/wget-1.10.2-7.el5.i386.rpm

源代码编译概述

使用源代码安装软件的优点

  • 获得最新的软件版本,及时修复bug
  • 根据用户需要,灵活定制软件功能

应用场合举例

  • 安装较新版本的应用程序时(自由软件的最新版本大都以源码的形式最先发布)
  • 当前安装的程序无法满足需要时(编译安装可由用户自行修改、定制功能)
  • 需要为应用程序添加新的功能时(用户可以重新配置、自由修改源代码,加入新的功能)

Tarball 封包: .tar.gz 和 .tar.bz2 格式居多 软件素材参考:http://sourceforge.net

确认源代码编译环境

需安装支持 C/C++程序语言的 编译器

gcc-4.1.1-52.el5、gcc-c++-4.1.1-52.el5 make-3.81-1.1.i386 ......

源码编译安装的基本过程

解包 ------ tar 解包、释放出源代码文件

配置 ------ ./configure 针对当前系统、软件环境,配置好安装参数

编译 ------ make 将源代码文件变为二进制的可执行程序

安装 ------ make install 将编译好的程序文件复制到系统中

1. 解包

习惯上将软件包释放到 /usr/src/ 目录

解包后的源代码文件位置: /usr/src/软件名-版本号/

2. 配置

需将工作目录切换到软件源码所在目录

使用源码目录中的 configure 脚本 执行"./configure --help" 可以查看帮助

典型的配置选项: --prefix=软件安装目录

3. 编译

执行 make 命令

4. 安装

执行 make install 命令

这两个步骤可以合写为一行: make && make install

相关推荐
wowocpp23 分钟前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君35 分钟前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别
鹏大师运维39 分钟前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源41 分钟前
Elasticsearch-linux环境部署
linux·elasticsearch
萨格拉斯救世主44 分钟前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试1 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
龙哥说跨境1 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
pk_xz1234563 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强3 小时前
Linux之sed命令详解
linux·运维·服务器
海绵波波1073 小时前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip