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

相关推荐
Dola_Pan15 分钟前
Linux文件IO(二)-文件操作使用详解
java·linux·服务器
wang_book18 分钟前
Gitlab学习(007 gitlab项目操作)
java·运维·git·学习·spring·gitlab
prcyang1 小时前
Docker Compose
运维·docker·容器
脚踏实地的大梦想家1 小时前
【Docker】安装全流程与配置完整镜像源(可安装 nginx)
运维·docker·容器
城南云小白2 小时前
Linux网络服务只iptables防火墙工具
linux·服务器·网络
从心归零2 小时前
sshj使用代理连接服务器
java·服务器·sshj
咩咩大主教2 小时前
C++基于select和epoll的TCP服务器
linux·服务器·c语言·开发语言·c++·tcp/ip·io多路复用
羌俊恩2 小时前
视频服务器:GB28181网络视频协议
服务器·网络·音视频
Zww08912 小时前
docker部署个人网页导航
运维·docker·容器
Flying_Fish_roe2 小时前
linux-网络管理-网络配置
linux·网络·php