Linux软件安装——软件包

摘要:本文主要学习了Linux下软件安装的相关知识。

软件包

简介

Linux下的软件包众多,且几乎都是经GPL授权、免费开源(无偿公开源代码)的。这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改。

GPL,全称General Public License,中文名称“通用性公开许可证”,简单理解GPL就是一个保护软件自由的一个协议,经GPL协议授权的软件必须开源。

Linux下的软件包可细分为两种,分别是源码包和二进制包。

Linux源码包

实际上,源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。

我们都知道,计算机只能识别机器语言,也就是二进制语言,所以源码包的安装需要一名“翻译官”将“abcd”翻译成二进制语言,这名“翻译官”通常被称为编译器。“编译”指的是从源代码到直接被计算机(或虚拟机)执行的目标代码的翻译过程,编译器的功能就是把源代码翻译为二进制代码,让计算机识别并运行。

另外,由于源码包的安装需要把源代码编译为二进制代码,因此安装时间较长。

为了解决使用源码包安装方式的这些问题,Linux软件包的安装出现了使用二进制包的安装方式。

Linux二进制包

二进制包,也就是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快,且安装过程报错几率大大减小。

二进制包是Linux下默认的软件安装包,因此二进制包又被称为默认安装软件包。目前主要有以下两大主流的二进制包管理系统:

1)RPM包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多Linux发行版都默认使用此机制作为软件安装的管理方式,例如:Fedora、CentOS、SuSE等。

2)DPKG包管理系统:由Debian Linux所开发的包管理机制,通过DPKG包,Debian Linux就可以进行软件包管理,主要应用在Debian和Ubuntu中。

线上升级

不论DPKG还是RPM,这些机制或多或少都会有软件依赖的问题,每个软件都有对依赖的检查,目前新的Linux开发商都有提供这样的线上升级机制,通过这个机制,在安装时只要有网络,就能够取得开发商所提供的任何软件。

在DPKG管理机制上就开发出APT的线上升级机制。

在RPM上则根据开发商的不同,有Red Hat系统的YUM(Yellow dog Updater, Modified),SuSE系统的YOU(Yast Online Update)等。

RPM包管理系统

RPM包说明

RPM全名是“RedHat Package Manager”,顾名思义,当初这个软件管理的机制是由Red Hat这家公司发展出来的。RPM是以一种资料库记录的方式来将你所需要的软件安装到你的Linux系统的一套管理机制。

RPM最大的特点就是将你要安装的软件先进行编译,然后打包成为RPM机制的文件,在安装时,RPM会先依照软件里的数据查询相依赖的软件是否满足,如果满足则进行安装,如果不满足则不安装。安装的时候会将该软件的信息写入RPM的数据库中,以便未来的查询、验证与反安装。

在使用RPM进行安装时也会遇到一些问题,软件安装的环境必须与打包时的环境需求一致或相当,并且在安装时需要满足某些软件的依赖,而且在卸载时需要特别小心,最底层的软件不可先移除,否则可能造成整个系统的问题。

为了解决不同厂商提供的软件不能在其他Linux版本上安装运行的问题,在安装软件时可以使用SRPM这个东西。

SRPM包说明

SRPM是Source RPM的意思,也就是这个RPM文件里面含有原始码,这个SRPM所提供的软件内容并没有经过编译。

通常SRPM的扩展名是以“***.src.rpm”这种格式来命名的。虽然SRPM的内容是原始码,但是仍然含有该软件所需要的相关软件依赖、以及所有RPM文件所提供的数据。同时,与RPM不同的是,SRPM也提供了参数配置档。所以,如果我们下载的是SRPM,那么要安装该软件时,你就必须要:

1)先将该软件以RPM管理的方式编译,此时SRPM会被编译成为RPM文件。

2)然后将编译完成的RPM文件安装到Linux系统中。

通常一个软件在发布的时候,都会同时发布该软件的RPM与SRPM。RPM文件必须要在相同的Linux环境下才能够安装,可以通过修改SRPM内的参数配置,然后重新编译产生能适合Linux环境的RPM文件,如此一来,就可以将该软件安装到新系统中。

命名规范

通过文件名可以知道这个软件的版本、适用的平台、编译释出的次数。例如rp-pppoe-3.11-5.el7.x86_64.rpm这的档案的意义为:

1)rp-pppoe:软件名称。

2)3.11:软体的版本资讯。

3)5:释出的次数。

4).el7.x86_64:适合的硬体平台。

5).rpm:文件类型名。

默认安装路径

通常情况下,RPM包采用系统默认的安装路径,所有安装文件会按照类别分散安装到如下目录:

 /etc/:配置文件安装目录。
/usr/bin/:可执行的命令安装目录。
/usr/lib/:程序所使用的函数库保存位置。
/usr/share/doc/:基本的软件使用手册保存位置。
/usr/share/man/:帮助文件保存位置。

RPM包的默认安装路径是可以通过命令查询的。

除此之外,RPM包也支持手动指定安装路径,但此方式并不推荐。因为一旦手动指定安装路径,所有的安装文件会集中安装到指定位置,且系统中用来查询安装路径的命令也无法使用(需要进行手工配置才能被系统识别),得不偿失。

与RPM包不同,SRPM源码包的安装通常采用手动指定安装路径(习惯安装到/usr/local/中)的方式。既然安装路径不同,同一apache程序的源码包和RPM包就可以安装到一台Linux服务器上(但同一时间只能开启一个,因为它们需要占用同一个80端口)。

实际情况中,一台服务器几乎不会同时包含两个apache程序,管理员不好管理,还会占用过多的服务器磁盘空间。

YUM包管理系统

说明

YUM的全称是“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器,是改进型的RPM软件管理器,它很好的解决了RPM所面临的软件包依赖问题。

YUM在服务器端存有所有的RPM包,并将各个包之间的依赖关系记录在文件中,当管理员使用YUM安装RPM包时,YUM会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的RPM包并进行安装。

使用YUM安装软件包之前,需指定好YUM下载RPM包的位置,此位置称为YUM源。换句话说,YUM源指的就是软件安装包的来源。

使用YUM安装软件时至少需要一个YUM源。YUM源既可以使用网络YUM源,也可以将本地光盘作为YUM源。

1)网络YUM源

一般情况下,只要你的主机网络正常,可以直接使用网络YUM源,不需要对配置文件做任何修改。

网络YUM源配置文件位于/etc/yum.repos.d/目录下,只要扩展名为“*.repo”的文件都是YUM源的配置文件,通常情况下CentOS-Base.repo文件生效。

2)本地YUM源

在无法联网的情况下,YUM可以考虑用本地光盘(或安装映像文件)作为YUM源。

Linux系统安装映像文件中就含有常用的RPM包,我们可以使用压缩文件打开映像文件(iso文件),进入其Packages子目录,该子目录下含有几乎所有常用的RPM包,因此使用系统安装映像作为本地YUM源没有任何问题。

在/etc/yum.repos.d/目录下有一个CentOS-Media.repo文件,此文件就是以本地光盘作为YUM源的模板文件,只需进行简单的修改即可。

Linux软件安装——软件包的更多相关文章

  1. Linux软件安装——软件包分类、RPM包管理

    1.软件包分类: (1)源码包: 优点:开源,即用户可以看到源代码,用户可以修改源代码:可以自由选择所需的功能:软件是编译安装,效率更高. 缺点:需要手动安装,安装慢. (2)二进制包(RPM包.系统 ...

  2. Linux软件安装,RPM与YUM

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3843955.html ...

  3. ubuntu Linux离线安装软件包

    ubuntu Linux离线安装软件包 http://www.myir-tech.com/bbs/thread-337-1-1.html(出处: 米尔科技论坛) 方法一 在可上网的ubuntu电脑上, ...

  4. Linux基础学习(6)--Linux软件安装

    第六章——Linux软件安装 一.软件包管理简介 1.软件包分类: (1)源码包:脚本安装包 (2)二进制包(RPM包.系统默认包) 2.源码包: (1)源码包的优点:开源,如果有足够的能力,可以修改 ...

  5. Linux软件安装中RPM与YUM 区别和联系

    .tc-nav-row{ height:38px; margin: 8px 15px; } .tc-nav-tab{ text-align: center; color:#333333; line-h ...

  6. Linux软件安装——服务管理

    Linux软件安装——服务管理 摘要:本文主要学习了Linux中有关服务管理的知识. 什么是服务 服务一般是放置在后台运行的一个或多个进分程,为用户或系统提供某项特定的服务,有些是系统服务,有些则是独 ...

  7. Linux软件安装——安装软件的命令

    Linux软件安装——安装软件的命令 摘要:本文主要学习了如何在Linux系统中安装.更新.卸载软件. rpm命令 rpm命令用来在Linux系统上进行软件的安装. 基本语法 安装命令: rpm -i ...

  8. Linux 软件安装的三种方式

    Linux 软件安装的三种方式 1.yum ​ 语法格式: ​ yum -y install package.name ​ -y yes # 遇到提示自动输入yes ​ 案例: 安装ifconfig命 ...

  9. Linux软件安装管理之——dpkg与apt-*详解 apt命令(dpkg和apt代替rpm)

    apt list *python* Nosee123关注赞赏支持   Linux软件安装管理之--dpkg与apt-*详解 [Linux软件安装管理系列]- - 传送门: - -<Linux软件 ...

随机推荐

  1. python web框架Flask——csrf攻击

    CSRF是什么? (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click ...

  2. shell下判断文件夹或文件是否存在

    文件夹不存在则创建 if [ ! -d "/data/" ];then mkdir /data else echo "文件夹已经存在" fi 文件存在则删除 i ...

  3. Android中使用WebView实现全屏切换播放网页视频

    首先写布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/an ...

  4. [转]Oracle 11g R2 RAC高可用连接特性 – SCAN详解

    原文地址:http://czmmiao.iteye.com/blog/2124373   昨天帮朋友解决11g RAC SCAN问题,当时为这朋友简单解答了一些SCAN特性相关的问题,但我知道这仅仅是 ...

  5. Mysql—数据类型详解

    在MySQL中常用数据类型主要分为以下几类:数值类型.字符串类型.日期时间类型. 数值类型 字符串类型 日期时间类型  数据类型  字节数  取值范围  格式 备注   year  1  1901~2 ...

  6. [日常] gocron源码阅读-使用go mod管理依赖源码启动gocron

    从 Go1.11 开始,golang 官方支持了新的依赖管理工具go modgo mod download: 下载依赖的 module 到本地 cachego mod edit: 编辑 go.modg ...

  7. 1.Java基础_Java核心机制简介

    Java的两种核心机制 Java虚拟机机制 Java垃圾回收机制 解释名词 J2SDK&JRE: J2SDK=JDK=Software Development Kit(软件开发包) JRE=J ...

  8. 无法添加符号: 归档没有索引;运行 ranlib 以添加一个

    这将告诉您对象文件的格式.如果对象文件是针对不同的平台编译的,则会导致无法为存档创建索引.要纠正这种情况,您需要重新编译这些文件.

  9. 【西北师大-2108Java】第二次作业成绩汇总

    2[西北师大-2108Java]第二次作业成绩汇总 以命令行方式或在Eclipse集成开发环境中编辑.编译.运行第3章示例程序3-1-3-5,结合程序运行结果理解程序代码,每个示例程序从语法.算法两个 ...

  10. CF1146D Frog Jumping

    CF1146D Frog Jumping 洛谷评测传送门 题目描述 A frog is initially at position 00 on the number line. The frog ha ...