《Linux下软件管理方式》源站链接,阅读体验更佳~
操作系统只是一个硬件的大管家,为了满足不同的需求,我们就需要在操作系统上安装各种各样的软件,比如如果我们想在自己的Linux服务器上运行Web服务器(WWW Server)这项服务,那么我们应该怎么做呢?当然首先需要做的就是在我们的Linux服务器上面安装Web服务器软件了。如果我们的服务器上没有安装Web服务器软件,当然也就无法启动WWW 服务了。所以,学会如何安装软件是一个非常重要的课题。

回想一下在Windows系统下我们是如何安装软件的,对于Windows系统而言,大部分的软件我们都可以从软件的官方页面下载软件的安装器,然后运行安装器软件,默认情况下一直点击下一步,就可以完成软件的安装了。对于一些开源的Windows软件,我们也可以直接获取软件的源代码,然后在自己的机器上进行编译。当然也有一些所谓的“绿色”软件解压之后立马就可以开始使用,不用进行任何的安装操作。

但是,在Windows操作系统下相对简单的软件安装,在Linux下却变得没有那么简单。在早期的时候,我们通常都是通过直接获取软件的源代码,然后在自己的Linux环境中进行编译的方式来进行软件的安装。

我们获取一个软件源代码的方式通常有两种,一种是直接使用版本管理工具比如Git来获取软件的源代码,另一种就是我们常说的Tarball了。

Tarball软件管理方式

由于自由软件的蓬勃发展,加上大型Unix-like主机的强大性能,很多软件开发者将它们的软件使用Tarball进行发布。

所谓的Tarball文件,其实就是将软件的所有源代码文件以tar打包,然后再以压缩技术来压缩,通常最常见的就是用gzip来压缩。因为利用了tar与gzip的功能,所以Tarball文件的扩展名一般就是*.tar.gz或者是简写为*.tgz。不过近来由于bzip2和xz压缩算法的压缩效率由于gzip,所以Tarball渐渐以bzip2和xz压缩算法来替换gzip,因此文件名也有可能是*.tar.bz2或者是*.tar.xz之类的。

使用Tarball的好处是显而易见的,因为使用了打包和压缩技术,使得源代码的下载更加简单,可以节省网络带宽。一个Tarball之中通常会包含以下内容:

  • 源代码文件
  • 检测程序文件(可能是configure或者是config等文件)
  • 本软件的简易说明和安装说明(INSTALL或README)

通常我们需要特别注意的就是INSTALL或者是README文件,参考这两个文件,我们就能够比较容易地对Tarball软件进行安装。

Linux下两种主流的软件管理器——RPM和DPKG

利用直接获取软件源代码并在本机进行编译的方式有其独特的优势,比如我们可以根据自己的需求对源代码进行修改,以及针对自己的环境设置最佳的编译参数等等。

但是,Linux 发展到今天,已经是一个相当复杂和丰富的操作系统了,其大部分源代码还是 GNU 项目的。因为是开源自由,所以 Linux 不像 Windows 那么死板,你可以自己定制属于自己的 Linux 系统,只要你够厉害,可以自己裁裁剪剪,修修改改 Linux 的源代码。

不过也正因为如此,一些初学者就有点头大了,网上一搜 Linux,版本那么多,用哪一个内核版本呢?然后安装哪些应用程序呢?而且安装方法又不同…

为了简化用户安装的过程,以及提供一些基本的软件,例如浏览器,通讯软件,终端,绘图软件,文本编辑器等等,产生了不少的 Linux 发行版,这些 Linux 的操作系统可以说是一整套使用环境:有内核,有 API,有各种预装的应用程序。

所以,一个Linux发行版其实就是Linux内核加上一大堆基础应用程序所组成的一个可用的操作系统。然而,不同的Linux发行版所提供的基础环境可能都是不一样的,这就导致我们如果直接拿到一个编译好的软件放到我们的Linux发行版中它可能是不能正常运行的。

**如果我们换一个思路,如果我们的Linux系统与发行商的系统是一模一样的,那么在厂商的系统上面编译好的软件,自然就可以在我们的操作系统上面运行。**也就是说,厂商先在他们的系统上编译好用户所需要的软件,然后把这个编译好的软件直接分发给用户进行安装,如此一来,由于我们本来就是使用的厂商的Linux发行版操作系统,这样就排除了环境的差异性。

如此一来,我们直接使用厂商编译好的软件就没有问题了。说的比较直接一点,就是利用了类似于Windows下软件的安装方式,因为Windows操作系统只有微软一家发行商,所以只要是实现在Windows下编译好并且可以正常运行的程序,我们直接把这个编译好的软件放到另一台装有同样版本的Windows操作系统的机器上,也是可以正常运行的。

再进一步,Linux开发商先在固定的硬件平台与操作系统平台上将需要安装或升级的软件编译好,然后将这个软件的所有相关文件打包成一个特殊格式的文件,在这些文件中还包含了预先检测系统与依赖软件的脚本,并提供数据库对这些信息进行记录,最后将这些文件发布。

客户端获取到这个文件后,只需要通过特定的命令就可以进行安装,在安装的过程中,安装命令会根据文件内部提供的检查依赖的脚本来检查安装环境是否符合需求,如果安装环境符合需求,那么才会进行安装。安装完成后,还会在本机的数据库中记录软件安装的相关信息,以便未来可以进行升级、删除等操作。,如此一来,软件的管理不久变得简单了吗。

在Windows下安装软件是比较简单和统一的,其主要原因就是Windows并不是一个开源的操作系统,它的发行商只有一家,那就是微软。而Linux则不太一样,Linux的全称应该是GNU/Linux,所以说,GNU 项目(开源的各种程序)+ Linux (操作系统内核)= GNU/Linux 这一个完整的操作系统。

但是,Linux的发行商可不仅仅只有一家,不同的发行商所采用的软件管理机制可能是不同的,在Linux上至少就有两种常见的软件管理器,分别是RPM和Debain的DPKG。

如前所述,不论dpkg/rpm 这些机制或多或少都会有软体属性相依的问题,那该如何解决呢? 其实前面不是谈到过每个软体档案都有提供相依属性的检查吗? 那 么如果我们将相依属性的资料做成列表, 等到实际软体安装时,若发生有相依属性的软体状况时,例如安装A 需要先安装B 与C ,而安装B 则需要安装D 与E 时,那么当妳要安装A ,透过相依属性列表,管理机制自动去取得B, C, D, E 来同时安装, 不就解决了属性相依的问题吗?

目前,最新的Linux开发商都有提供这样的在线升级功能,在dpkg管理机制上提供了apt在线升级功能了rpm则以开发商的不同,有Red Hat系统的yum和SUSE系统的YaST Online Update(YOU)等。

发行版代表 软件管理机制 使用命令 在线升级功能(命令)
Red Hat、Fedora、CentOS RPM rpm、rpmbuild YUM(yum)
Debain、Ubuntu DPKG dpkg APT(apt-get)

有了在线升级功能,安装盘只需要在初次安装操作系统的时候使用,其他时候,只要有网络,我们就能够获取原本开发商所提供的任何软件了。

总结

综上所述,在Linux下安装软件的方式大体是类似的,我们可以使用发行版提供的包管理工具来进行软件的安装,也可以通过直接编译源代码的方式来进行软件的安装。不过由于Linux是基于GNU项目的开源自由的操作系统,所以在Linux下安装软件最原始和通用的方式其实是通过编译软件源代码的方式进行安装。而通过包管理方式安装软件的操作方式在不同的Linux发行版中可能会有所不同。

但是并不是每一个人都会编译源代码,这需要比较多的前置知识,所以在接下来的文章中,我们先以CentOS为例介绍RPM软件管理机制及相关命令的使用,以Ubuntu为例介绍DPKG软件管理机制以及相关命令的使用。在最后,将会介绍一下如何在Linux上进行软件源代码的编译。

以上,就是我对Linux下软件管理方式的基本理解,感谢你耐心读完。本人深知技术水平和表达能力有限,如果文中有什么地方不合理或者你有其他不同的思考和看法,欢迎随时和我进行讨论(laomst@163.com)。

Linux下软件管理方式相关推荐

  1. 【转】Linux下软件安装的几种方式

    转自Linux下软件安装的几种方式 Linux 系统的/usr目录 Linux 软件安装到哪里合适,目录详解 Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统 ...

  2. Linux笔记 软件管理

    一.软件包分类 1.软件包分类:源码包.二进制包 源码包:源代码 1)优点:开源,有能力可修改源代码 可以自由选择所需的功能 软件是编译安装,更适合Linux系统,更稳定效率更高 卸载方便. 2)缺点 ...

  3. Linux入门基础教程之Linux下软件安装

    Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...

  4. linux下软件的安装[转]

    linux下软件的安装 先来看看Linux软件扩展名.软件后缀为.rpm最初是Red Hat Linux提供的一种包封装格式,现在许多Linux发行版本都使用:后缀为.deb是Debain Linux ...

  5. Linux下软件的安装与卸载

    在Windows下安装软件时,只需运行软件的安装程序(setup.install等)或者用zip等解压缩软件解开即可安装,运行反安装程序(uninstall.unware."卸载" ...

  6. Erebus以Linux勒索软件的方式重出江湖,勒索韩国公司100万美元

    本文讲的是Erebus以Linux勒索软件的方式重出江湖,勒索韩国公司100万美元, 6月10日,韩国网络托管公司NAYANA被Erebus 勒索软件(由趋势科技公司检测为RANSOM_ELFEREB ...

  7. Linux下软件安装和卸载

    在Windows下,我们安装软件基本上是先到网上下载软件的安装包,通常是以.exe和.msi为后缀的文件,然后双击安装包,之后就可以按照软件安装向导一步步进行安装了,但在Linux下,软件的安装方式截 ...

  8. linux下软件的基本安装和卸载

    Linux软件的安装和卸载一直是困扰许多新用户的难题.在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的"添加/删除程序"来实现.与其相类似,在Linux下有一 ...

  9. linux实现单机qq_Linux后台服务器开发——Linux下进程间通信的方式有哪些?

    Linux下进程间通信的方式有: 管道 消息队列 信号 信号量 共享存储 套接字 一.管道 管道是半双工的,数据只能向一个方向流动:需要双方通信时,需要建立起两个管道 PIPE无名管道 详情参阅:ht ...

  10. LINUX下磁盘管理的基本流程与相关操作命令

    LINUX下磁盘管理的基本流程与相关操作命令 磁盘的管理 添加磁盘 格式化分区 磁盘挂载 磁盘的管理 在Linux中我们可以通过以下几种方式来查看我们所用的磁盘 (1)df命令: 还可以添加后缀命令( ...

最新文章

  1. 像数据分析一样写 Web 页面,这个 Python 库做到了!
  2. unix,linux,windows 哪个更好,更适合做服务器
  3. vue实现div多选全选功能_怎样为你的 Vue.js 单页应用提速
  4. 服务容错和Hystrix
  5. JavaScript实现字符串转换成驼峰表示法
  6. 华为技术有限公司申请无人机相关专利
  7. 命令行请求网站地址带token_利用gitlab或gitee作为网站免费图床的C#实现
  8. Java前端Rsa公钥加密,后端Rsa私钥解密(支持字符和中文)
  9. 安装Lua For Windows
  10. mysql Load Data InFile 的用法
  11. 【SOT】SiamRPN代码笔记
  12. css改变透明背景png图片的图标颜色
  13. pytorch基础(九)- 自定义数据集训练模型 和 迁移学习
  14. 今天分享给你几个绘制Excel表格的技巧
  15. JavaSE、JavaEE、JavaME三者之间的关系与区别
  16. Fast Affine Template Matching over Galois Field仿射模板匹配数据测试问题
  17. 类脑计算这么热,不如上了这趟车
  18. Git实战技巧-比较不同分支之间的差异和代码的改动
  19. emqtt 启动报错 Node 'emq@127.0.0.0' not responding to pings.
  20. 微信小程序 input事件绑定

热门文章

  1. 数据库入门-主键和外键设置
  2. 如何将txt文件迅速转为Excel文件
  3. C语言函数的递归调用
  4. 国军标gjb150a振动冲击试验标准
  5. photo3d人脸照片转3d模型软件开发
  6. c语言表达式语法问题,C语言表达式的语法图与语法检查
  7. Visual Studio 2022 MFC 学习笔记(一):常见问题汇总
  8. Java se 8最新下载地址JDK8最新下载地址
  9. android 视频地址解析,Android使用webview解析视频并播放
  10. Vscode的SSH插件远程连接Linux