像Linux一样安装软件(2):包管理器一锅炖

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了像Linux一样安装软件(2):包管理器一锅炖相关的知识,希望对你有一定的参考价值。

参考技术A

简单来说,包管理器 package manager 是一种工具,它允许用户在操作系统上安装、删除、升级、配置和管理软件包。

软件包管理器可以是像“软件中心”这样的图形化应用,也可以是像 apt-get 或 winget 这样的命令行工具。

包管理器是一个通用的概念,它并不是 Linux 独有的。你会经常发现各种软件或编程语言的包管理器。有只是针对 Python 包的 PIP 包管理器。甚至 Atom 编辑器也有自己的包管理器。

一个包 package 通常指的是一个应用程序,它可以是一个 GUI 应用程序、命令行工具或(其他软件程序需要的)软件库。包本质上是一个存档文件,包含二进制可执行文件、配置文件,有时还包含依赖关系的信息。

在旧时代,软件曾经是从它的源代码安装的。你会参考一个文件(通常命名为 README ),看看它需要什么软件组件、二进制文件的位置。它通常包括一个配置脚本或 Makefile 。你必须自己编译该软件或自己处理所有的依赖关系(有些软件需要安装其他软件)。

为了摆脱这种复杂性,Linux 发行版创建了自己的打包格式,为终端用户提供随时可用的二进制文件(预编译软件),以便安装软件,同时提供一些元数据(版本号、描述)和依赖关系。

这就像烤蛋糕与买蛋糕一样。

大约在上世纪 90 年代中期,Debian 创建了 DEB 打包格式(.deb),Red Hat Linux 创建了 RPM(Red Hat Package Manager 的缩写)打包系统(.rpm)。编译源代码的方式仍然存在,但现在是可选的。

打包系统就是所有相同打包格式的集合仓库,要与打包系统交互或使用打包系统,你需要一个包管理器来拉取下载打包系统中的包,也就是我们常说的软件。

每个打包系统都有一个或者多个包管理工具。

包管理器分为:通用软件包管理器和应用程序级软件包管理器。与系统级软件包管理器相比,应用级软件包管理器专注于软件系统的一小部分,为开发人员提供所需要的编程语言的各种库。

Linux下有:

APT:是Debian及其派生的Linux软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。

Yum是由Duke University团队修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于RPM包管理的字符前端软件包管理器。能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux采用。

dpkg:最初由Debian使用,现在由Ubuntu使用。使用.deb格式,是第一个拥有广为人知的依赖性解决工具APT。

当然,还有很多,就不一一列举出来了!

Windows下有:

Chocolatey: 以Yum和apt-get的精神为基础的Windows开源分散式软件包管理器。

pacman: MSYS2移植的Windows版本的Arch Linux软件包管理器。

Scoop:一个用于Windows的命令行安装程序。

WinGet:(Windows 程序包管理器:Windows Package Manager)是微软为 win10 开发的一款开源的软件包管理器。

MacOS下有:

Mac App Store:OS X应用程序的官方数字分销平台。

Homebrew:MacOS的软件包管理器,基于Git。

Fink: dpkg的移植,它是最早的macOS的软件包管理器之一。

几乎都是各大开发语言的库管理相关。

gitee: https://gitee.com/cmcc-oneos/OneOS-Lite

docs: https://oneos-lite.com/

公众号:CMCC-OneOS

Linux 系列之Yum管理应用软件

1.        今天给大家带来的是关于Linux操作系统关于应用软件的管理,可能有些刚开始学习Linux的小伙伴对于Linux软件的安装删除不是特别了解,今天我就给大家介绍一种安装方式可以让你简单快速的安装使用丰富的应用软件。大家在平时安装应用软件时,大致可以分为两种,一种是下载安装包到本地进行安装,另一种就是像苹果的IOS系统一样,直接在线安装Apple Store 的应用就可以使用了,其实Linux应用软件的安装就和苹果一样,接下来就简单给大家说一下。

1.        首先要想学会Linux应用软件的安装删除就必须了解一下关于Yum的工作机制

         YUM,Yellowdog Updater Modified

  • -基于红帽RPM封装包构建的软件更新机制

  • -自动解决软件依赖关系

  • -所有软件包由集中的YUM软件仓库提供

这种方式是红帽公司统一的将大部分比较常用的Linux以.RPM结尾的安装包放入YUM软件仓库为客户端提供安装服务。


在这里我将使用VMware虚拟机为大家带来实验的操作,这里我使用的是Centos7操作系统。

一、配置软件仓库    

1.配置本地的软件仓库

a.放入centos7.iso镜像文件到光驱中,确保电源开启

在虚拟机中的操作就是:

技术分享图片

b.命令操作

[[email protected] 桌面]# cd                                                                

[[email protected] ~]# umount /dev/cdrom                         //卸载原光盘            

[[email protected] ~]# mount /dev/cdrom /mnt/                //设置挂载点

[[email protected] ~]# ls /mnt/                                             //显示/mnt的内容

[[email protected] ~]# mkdir -p /repo/cos7dvd                   //递归创建/repo 目录和/repo/cos7dvd目录

[[email protected] ~]# cp -rf /mnt/* /repo/cos7dvd/           //复制光盘中的内容到/repo/cos7dvd下,

                                                                                  用于软件仓库

[[email protected] ~]# du -sh /mnt/ /repo/cos7dvd/           //验证/mnt和/repo/cos7dvd文件大小是否一致

技术分享图片 



2.客户端配置yum文件

通过配置yum文件可以让客户端知道应用软件在仓库目录的位置,该去哪里下载

[[email protected] 桌面]# cd

[[email protected] ~]# ls /etc/yum.repos.d/           //系统在选择地址下载时访问的文件夹就是/etc/yum.repos.d

                                                                   以.repo结尾的文件

[[email protected] ~]# mkdir /etc/yum.repos.d/oldrepo     //创建一个文件夹将其他的repo文件移动到此处,避免影响实验的效果

[[email protected] ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/oldrepo/     //禁用不可用仓库,避免干扰          

[[email protected] ~]# ls /etc/yum.repos.d/     //检验除了本地repo文件是否还有其他的

[[email protected] ~]# yum-config-manager --add file:///repo/cos7dvd/     //  建立配置文件

[[email protected] ~]# ls /etc/yum.repos.d/

[[email protected] ~]# vim /etc/yum.conf           // 取消软件签名检查

...

  8 gpgcheck=0//把1修改为0  禁用gpgcheck检验

...

技术分享图片

技术分享图片

3.验证

[[email protected] ~]# yum clean all         //清楚yum缓存

[[email protected] ~]# yum repolist          //验证仓库名字,路径,软件包数量

技术分享图片

二、yum管理应用程序

1.查询软件包

格式:yum list [软件名]  .. .. 

eg:

[[email protected] ~]# yum list httpd       //检查Httpd服务是否安装

[[email protected] ~]# yum list firefox      //检查火狐浏览器是否安装

技术分享图片

2.获取软件包的描述信息

格式:yum info [软件名]  .. ..

eg:

[[email protected] ~]# yum info httpd                 //查看httpd的描述信息

[[email protected] ~]# yum info firefox               //查看firefox的描述信息

技术分享图片

技术分享图片

3.查询文件和命令由哪个包生成

格式:yum privides "*/程序或文件名".. ..

eg:                                                   

[[email protected] ~]# yum provides */vim       // 查询vim命令由哪个包生成

技术分享图片                                              

4.安装/卸载应用软件

安装:

格式:yum [-y] install 软件名 .. .. 

eg:

[[email protected] ~]# yum -y install httpd        //  安装httpd服务

技术分享图片      

技术分享图片                                                   

删除:

格式:yum [-y] remove 软件名 .. ..

eg:

[[email protected] ~]# yum -y remove httpd         // 卸载httpd

技术分享图片

重新安装:

格式:yum [-y] reinstall 软件名 .. ..

eg:

当不留意删除了应用软件的某一个文件使文件不能正常打开时,可以选择重装此软件修复,这里模拟意外删除vim命令,

通过查找vim命令来自哪个包,通过重新安装vim所在的包修复vim命令。

[[email protected] ~]# vim /etc/passwd                                         //未删除前是否可以编辑文件

[[email protected] ~]# which vim                                                   // 查看vim的命令路经

[[email protected] ~]# rm -rf /usr/bin/vim                                     //模拟意外删除vim的命令路经

[[email protected] ~]# vim /etc/passwd                                         //尝试是否可以编辑文件

[[email protected] ~]# yum provides /usr/bin/vim                        // 查看vim的命令路经来源于哪个包

[[email protected] ~]# yum list vim-enhanced                               //查看vim-enhanced是否安装

[[email protected] ~]# yum -y reinstall vim-enhanced                   //重新安装vim-enhanced

[[email protected] ~]# vim /etc/passwd                                         //重新测试vim命令是否可以编辑文件

技术分享图片

技术分享图片

技术分享图片


以上是关于像Linux一样安装软件(2):包管理器一锅炖的主要内容,如果未能解决你的问题,请参考以下文章

Linux 系列之Yum管理应用软件

Linux软件安装(yum与rpm详解)

Linux新手的最佳包管理器

Linux新手的最佳包管理器

Linux新手的最佳包管理器

Linux下安装软件命令详解