linux发行家族和发行版及安装软件方式

news2024/12/29 12:33:08

在Linux平台下,软件包的类型可以划分为两类:源码包二进制包
一个软件要在Linux上执行,必须是二进制文件;
源码包:即程序软件的源代码(一般也叫Tarball,即将软件的源码以tar打包后再压缩的资源包);源码包是作者直接将源程序发布在网上,我们直接下载源文件,自己编译成二进制程序使用;
二进制包:如 Red Hat发行版的.rpm包,Debian发行版的.deb包;

二进制包方式安装:

linux主要两大派系:

RedHat 系列:Redhat、Centos、Fedora 等
常见的安装包格式 rpm 包,安装rpm包的命令是“rpm -参数”
包管理工具 yum

Debian系列:Debian、Ubuntu 等
常见的安装包格式 deb 包,安装 deb 包的命令是“dpkg -参数”
包管理工具 apt-get
两者的区别是dpkg绕过apt包管理数据库对软件包进行操作,所以你用dpkg安装过的软件包用apt可以再安装一遍,系统不知道之前安装过了,将会覆盖之前dpkg的安装。
1、dpkg是用来安装.deb文件,但不会解决模块的依赖关系,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件。
2、apt会解决和安装模块的依赖问题,并会咨询软件仓库, 但不会安装本地的deb文件, apt是建立在dpkg之上的软件管理工具。

rmp、yum、deb、apt-get区别:

rmp包

rmp 是 LINUX 下的一种软件的可执行程序,你只要安装它就可以了。这种软件安装包通常是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm

rmp是Red Hat公司随Redhat Linux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。

命令:

 rpm -ivh rpm包名    	#安装软件,下面是参数说明
 						##-i :install ,安装
    					##-v : --verbose ,显示详细信息
    					##-h:–hash,进度条
    					##–nodeps :安装前不需要检查依赖
 rpm -Uvh rpm包名 		#升级软件
 rpm -e rpm包名          #卸载软件,其中如果在加上选项–nodeps ,表示卸载软件时,不检查依赖。这样会使那些使用软件包的软件在此之后可能会不能正常工作
 rpm -qpi rpm包名        #查询软件包的详细信息:执行
 						###由于软件包比较多,一般会采取过滤。类如: rpm -qa | grep rpm软件包 
 rpm -qf rpm包名         #查询某个文件是属于那个rpm包的
 rpm -qpl rpm包名        #查该软件包会向系统里面写入哪些文件 

deb包

deb 是 Unix 系统(其实主要是 Linux )下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组。由于 Unix 类系统对权限、所有者、组的严格要求,而 deb 格式安装包又经常会涉及到系统比较底层的操作,所以权限等的设置尤其重要

deb 包本身有三部分组成:数据包,包含实际安装的程序数据,文件名为 data.tar.XXX;安装信息及控制脚本包,包含 deb 的安装说明,标识,脚本等,文件名为 control.tar.gz;最后一个是 deb 文件的一些二进制数据,包括文件头等信息,一般看不到,在某些软件中打开可以看到。

deb 本身可以使用不同的压缩方式。tar 格式并不是一种压缩格式,而是直接把分散的文件和目录集合在一起,并记录其权限等数据信息。之前提到过的 data.tar.XXX,这里 XXX 就是经过压缩后的后缀名。deb 默认使用的压缩格式为 gzip 格式,所以最常见的就是 data.tar.gz。常有的压缩格式还有 bzip2 和 lzma,其中 lzma 压缩率最高,但压缩需要的 CPU 资源和时间都比较长。

data.tar.gz包含的是实际安装的程序数据,而在安装过程中,该包里的数据会被直接解压到根目录(即 / ),因此在打包之前需要根据文件所在位置设置好相应的文件/目录树。

而 control.tar.gz 则包含了一个 deb 安装的时候所需要的控制信息。一般有 5 个文件:control,用了记录软件标识,版本号,平台,依赖信息等数据;preinst,在解包data.tar.gz 前运行的脚本;postinst,在解包数据后运行的脚本;prerm,卸载时,在删除文件之前运行的脚本;postrm,在删除文件之后运行的脚本;在 Cydia 系统中,Cydia 的作者 Saurik 另外添加了一个脚本,extrainst_,作用与 postinst 类似。

命令:

sudo dpkg -i xxx.deb     # 安装软件包xxx.deb
sudo dpkg -R xxx         # 安装目录xxx下所有的软件包
sudo dpkg -r xxx.deb     # 卸载软件包xxx.deb,但是保留软件配置信息。有些软件会有个人设置的一些配置
sudo dpkg -P xxx.deb     # 卸载软件包xxx.deb,且删除软件配置信息。
sudo dpkg -I xxx         # 搜索软件包
sudo dpkg -l             # 列出所有已安装的deb包,同时显示版本号以及简短说明
sudo dkpg -p xxx         # 查看包的具体信息
sudo dkpg -L xxx         # 查看一个软件包安装到系统里面的文件目录信息。很多人抱怨用了Ubuntu或者Debian以后,不知道自己的软件给安装到什么地方了,其实就可以用这个命令来查找

yum

YUM(全称为 Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS
中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包
并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次
次下载、安装。

命令

[root@localhost opt]# yum --help
已加载插件:fastestmirror, langpacks
Usage: yum [options] COMMAND

List of Commands:

check          检查 RPM 数据库问题
check-update   检查是否有可用的软件包更新
clean          删除缓存数据
deplist        列出软件包的依赖关系
distribution-synchronization 已同步软件包到最新可用版本
downgrade      降级软件包
erase          从系统中移除一个或多个软件包
fs             Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.
fssnapshot     Creates filesystem snapshots, or lists/deletes current snapshots.
groups         显示或使用、组信息
help           显示用法提示
history        显示或使用事务历史
info           显示关于软件包或组的详细信息
install        向系统中安装一个或多个软件包
langavailable  Check available languages
langinfo       List languages information
langinstall    Install appropriate language packs for a language
langlist       List installed languages
langremove     Remove installed language packs for a language
list           列出一个或一组软件包
load-transaction 从文件名中加载一个已存事务
makecache      创建元数据缓存
provides       查找提供指定内容的软件包
reinstall      覆盖安装软件包
repo-pkgs      将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。
repolist       显示已配置的源
search         在软件包详细信息中搜索指定字符串
shell          运行交互式的 yum shell
swap           Simple way to swap packages, instead of using shell
update         更新系统中的一个或多个软件包
update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system
updateinfo     Acts on repository update information
upgrade        更新软件包同时考虑软件包取代关系
version        显示机器和/或可用的源版本。


Options:
  -h, --help            显示此帮助消息并退出
  -t, --tolerant        忽略错误
  -C, --cacheonly       完全从系统缓存运行,不升级缓存
  -c [config file], --config=[config file]
                        配置文件路径
  -R [minutes], --randomwait=[minutes]
                        命令最长等待时间
  -d [debug level], --debuglevel=[debug level]
                        调试输出级别
  --showduplicates      在 list/search 命令下,显示源里重复的条目
  -e [error level], --errorlevel=[error level]
                        错误输出级别
  --rpmverbosity=[debug level name]
                        RPM 调试输出级别
  -q, --quiet           静默执行
  -v, --verbose         详尽的操作过程
  -y, --assumeyes       回答全部问题为是
  --assumeno            回答全部问题为否
  --version             显示 Yum 版本然后退出
  --installroot=[path]  设置安装根目录
  --enablerepo=[repo]   启用一个或多个软件源(支持通配符)
  --disablerepo=[repo]  禁用一个或多个软件源(支持通配符)
  -x [package], --exclude=[package]
                        采用全名或通配符排除软件包
  --disableexcludes=[repo]
                        禁止从主配置,从源或者从任何位置排除
  --disableincludes=[repo]
                        disable includepkgs for a repo or for everything
  --obsoletes           更新时处理软件包取代关系
  --noplugins           禁用 Yum 插件
  --nogpgcheck          禁用 GPG 签名检查
  --disableplugin=[plugin]
                        禁用指定名称的插件
  --enableplugin=[plugin]
                        启用指定名称的插件
  --skip-broken         忽略存在依赖关系问题的软件包
  --color=COLOR         配置是否使用颜色
  --releasever=RELEASEVER
                        在 yum 配置和 repo 文件里设置 $releasever 的值
  --downloadonly        仅下载而不更新
  --downloaddir=DLDIR   指定一个其他文件夹用于保存软件包
  --setopt=SETOPTS      设置任意配置和源选项
  --bugfix              Include bugfix relevant packages, in updates
  --security            Include security relevant packages, in updates
  --advisory=ADVS, --advisories=ADVS
                        Include packages needed to fix the given advisory, in
                        updates
  --bzs=BZS             Include packages needed to fix the given BZ, in
                        updates
  --cves=CVES           Include packages needed to fix the given CVE, in
                        updates
  --sec-severity=SEVS, --secseverity=SEVS
                        Include security relevant packages matching the
                        severity, in updates

常用命令

install:安装rpm软件包
update:更新rpm软件包
check-update :检查是否有可用的更新rpm软件包
remove :删除指定的rpm软件包
list :显示软件包信息
clean :清理yum过期的缓存
deplist:显示yum软件包的所有依赖关系

修改网络yum源

默认的系统 YUM 源,需要连接国外 apache 网站,网速比较慢,可以修改关联的网络
YUM 源为国内镜像的网站,比如网易 163,aliyun 等。

1、先安装 wget, wget 用来从指定的 URL 下载文件

[root@hadoop101 ~] yum install wget

2、在/etc/yum.repos.d/目录下,备份默认的 repos 文件。

[root@hadoop101 yum.repos.d] pwd
/etc/yum.repos.d
[root@hadoop101 yum.repos.d] cp CentOS-Base.repo CentOS-Base
.repo.backup

3、下载网易 163 或者是 aliyun 的 repos 文件,任选其一

[root@hadoop101 yum.repos.d] wget http://mirrors.aliyun.com/repo/Centos-7.repo //阿里云
[root@hadoop101 yum.repos.d] wget http://mirrors.163.com/.help/CentOS7-Base-163.repo //网易 163

4、使用下载好的 repos 文件替换默认的 repos 文件

例如:用 CentOS7-Base-163.repo 替换 CentOS-Base.repo

[root@hadoop101 yum.repos.d]# mv CentOS7-Base-163.repo CentOS-Base.repo

5、清理旧缓存数据,缓存新数据

[root@hadoop101 yum.repos.d]#yum clean all
[root@hadoop101 yum.repos.d]#yum makecache
yum makecache 就是把服务器的包信息下载到本地电脑缓存起来

6、测试验证

[root@hadoop101 yum.repos.d]# yum list | grep firefox
[root@hadoop101 ~]#yum 

apt

apt是Linux软件包管理工具。
apt是一个命令行实用程序,用于在Ubuntu、Debian和相关Linux发行版上安装、更新、删除和管理deb软件包。
apt是为交互使用而设计的。最好在shell脚本中使用apt-get和apt-cache,因为它们在不同版本之间向后兼容,并且有更多选项和功能。
大多数apt命令必须以具有sudo权限的用户身份运行。

apt update
#从软件源服务器获取最新的软件信息并缓存到本地。
#因为很多apt的其他命令都是要通过比对版本信息来进行操作的,如果每次都去对比线上的版本信息效率肯定不理想,也没必要,所以做了一个缓存的机制。

apt upgrade
# 从本地仓库中对比系统中所有已安装的软件,如果有新版本的话则进行升级

apt list
#列出本地仓库中所有的软件包名

apt list [package]
#从本地仓库中查找指定的包名,支持通配符,比如"apt list zlib*“就能列出以zlib开头的所有包名

apt list --installed
#列出系统中所有已安装的包名

apt search [key]
#与list类似,通过给出的关键字进行搜索,列出所有的包和其描述

apt show [package]
#列出指定包的详细情况,包名要填写完整。

apt install [package]
#安装指定的包,并同时安装其依赖的其他包。

apt remove [package]
#卸载包,但不删除相关配置文件。包名支持通配符

apt autoremove
#卸载因安装软件自动安装的依赖,而现在又不需要的依赖包

apt purge [package]
#卸载包,同时删除相关配置文件。包名支持通配符

apt clean
#删除所有已下载的软件包

apt autoclean
#类似clean,但删除的是过期的包(即已不能下载或者是无用的包)

注意事项:

  • apt与apt-get的区别

apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。
在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。

  • /etc/apt/sources.list

-是包管理工具 apt 所用的记录软件包仓库位置的配置文件。

源码包安装

源码安装一般步骤:

1、下载源码包并解压到指定目录;           //一般将源码包解压至目录/user/local/src下
 
2、预编译(配置)./configure;            //设置安装目录,安装模块等选项
 
3、编译 make;                         //生成可执行二进制文件
 
4、安装make install;                  //复制二进制文件到系统,配置应用环境
 
Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure–help输出详细的选项列表; 配置这一步骤:把系统环境的检测结果和定义好的功能选项写入Makefile文件中,为了后续的编译和安装做铺垫
 
其中./configure --prefix==安装路径,来指定安装路径,一般情况下默认的安装路径为/usr/local--prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share,比较凌乱;
 
如果配置--prefix,如:./configure --prefix=/usr/local/test
 
可以把所有资源文件放在/usr/local/test的路径中,不会杂乱;
 
用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统);
 
make会调用gcc编译器,读取makefile文件中的信息进行系统软件编译。将源码程序转化为可以被linux系统所识别的可执行文件
 
如果在./configure或者make编译中报错,那么我们在重新执行前一定要执行make clean命令,系统清空Makefile文件或编译产生的.o开头的文件;
 
make install是用来安装的,它从Makefile中读取指令,安装到指定的位置。只有在执行install的时候才会向指定的安装目录写入文件。
 
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/517965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

功能测试包含哪些测试?分别有什么作用?

功能测试包含哪些测试?功能测试主要包括链接测试、表单测试、搜索测试、删除测试、cookies、session测试、数据库测试等部分。功能测试对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。 功能…

WPS表格的IF与AND函数典型应用实例

HR人士在招聘时经常需要对面试人员进行三次面试都合格才给录取,如果单独使用一个IF函数没有办法进行三个成绩判断,这就需要使用IF函数结合AND函数配合起来使用。先看一下示例数据表,当初试、复试、终试三个成绩都大于80才返回录取。 先看一下…

第1章:项目管理概论

1、《项目管理知识体系指南》(《指南》)作为一部公认的项目管理标准,规定了在大多数时间适用于大多数项目的知识和做法。这些知识和做法: 答案:可供各种项目裁剪使用 2、《指南》是关于以下哪个的标准? …

ADS1299IPAGR 8通道、低噪声模拟前端,TPS7B7701QPWPRQ1单通道低压降稳压器(LDO)

ADS1299IPAGR 模拟前端(AFE)是8通道、低噪声、24位、同步采样Δ∑模数转换器 (ADC)。这些ADC配有内置可编程增益放大器 (PGA)、内部基准和板载振荡器。ADS1299-x集成了颅外脑电图 (EEG) 和心电图 (ECG) 应用所需的全部常用功能。凭借高集成度和卓越性能&…

TDengine 部署与使用----时序数据库

官网 通过 Docker 快速体验 TDengine | TDengine 文档 | 涛思数据 docker安装 拉取最新docker镜像 docker pull tdengine/tdengine:latest 然后执行 docker run -d -p 6030:6030 -p 6041:6041 -p 6043-6049:6043-6049 -p 6043-6049:6043-6049/udp tdengine/tdengine 查看容器…

VMware Aria Automation Config 8.12 - Aria Automation 的软件配置管理与安全性

VMware Aria Automation Config 8.12 - Aria Automation 的软件配置管理与安全性 请访问原文链接:https://sysin.org/blog/vmware-aria-automation-config/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org Aria Aut…

Shell——正则表达式

正则表达式的作用 通常用于判断语句中,用来检查某一字符串是否满足某一格式 正则表达式的构成 正则表达式是由普通字符与元字符组成 普通字符包括大小写字母、数字、标点符号及一些其他符号 元字符是指在正则表达式中具有特殊意义的专用字符,可以用…

零基础入门测试该学什么?最全整理,照着学就对了

零基础入门测试该学什么?最全整理,照着学就对了 于很多小白而言,想要转行软件测试岗位,却又怕自己从来没有接触过计算机,底子很薄弱,从而还没开始就打起了退堂鼓。也有许多初学者,在入门的过程…

虚拟化技术介绍-VMware和Docker的区别

都说今天是一个云时代,其实云的本质就是由基础架构提供商提供基础架构,应用开发商不再关心基础架构。我们可以类比人类刚刚发明电的时候,工厂需要自己建电站,而现在只需要电线和插座就可以使用电。云时代让我们可以在分钟、甚至秒…

ASEMI代理ADI亚德诺ADUM3211TRZ-RL7原厂芯片

编辑-Z ADUM3211TRZ-RL7参数描述: 型号:ADUM3211TRZ-RL7 数据速率:10 Mbps 传播延迟:50 ns 脉冲宽度失真:3 ns 脉冲宽度:100 ns 输出上升/下降时间:2.5 ns 供电电流:2.6 mA …

Google Play应用广告系列的转化跟踪

设置和了解我们应用的转化对于广告投放的成功至关重要。依赖错误或虚假数据,很容易影响我们的目标和投资回报。 无论我们运行的是什么活动,要做的第一件事就是将主要转化与其成本相关联: 1,应用安装活动侧重于安装和 CPI 或每次…

Gif动图怎么在线做?教你在线做gif动画图片

****  现在很多广告营销中gif动图非常的收欢迎,比传统的静态图片画面要生动丰富。但是,要如何制作gif动图宣传图片呢?小白也能操作吗? 一、什么工具能够在线制作gif动画图片? GIF中文网作为专业的gif制作&#xff…

Chromium源码视频播放分析

​ 下载代码,调试方法等见Chromium视频播放相关调试记录_bberdong的博客-CSDN博客 硬解流程 GPU进程 MediaService::CreateInterfaceFactory,然后创建了InterfaceFactoryImpl。 创建解码器 gpu进程收到了一个message创建了一个MojoVideoDecoderServ…

TypeScript 基础语法

(一) 类型 1、基元类型 类型例子描述number1, -33, 2.5任意数字string‘hi’, “hi”, hi任意字符串booleantrue、false布尔值true或falsenull值只能为nullundefined值只能为undefined字面量其本身(详见 面向对象 15泛型)限制变量的值就是该字面量的值any*任意类型unknown*类…

代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小的子数组、59. 螺旋矩阵

有序数组的平方: 题目链接:力扣 知识点:双指针。 思路分析:首先想到的是不怎么动脑子的暴力想法,即先将vector中的各元素用pow函数进行平方,接着再用sort函数对已平方过的数据进行排序。 但是由于sort是基于快速排序…

修复bug:FlexibleButton id相反问题

目录 版本:https://github.com/murphyzhao/FlexibleButton/releases/tag/2.0.1 问题现象 问题描述 查源码! 注册 读按键 按键处理 小结 版本:https://github.com/murphyzhao/FlexibleButton/releases/tag/2.0.1https://github.com/mur…

00后自述,生活所迫,不卷一点我能怎么办?

前段时间我去面试了一个软件测试公司,成功拿到了offer,薪资也从10k涨到了15k,对于工作都还没两年的我来说,还是比较满意的,毕竟有些工作了3到4年的可能还没有我的高。 在公司一段时间后大家都说我是卷王,其…

MySQL5.7数据导入/导出、TiDB数据回迁移

一、环境&安装包 CentOS Linux release 7.4.1708 (Core)TDSQL(腾讯基于MySQL5.7.x自主研发的数据库)Mysqldump(MySQL5.7.41备份客户端)Dumpling(mydumper 的全新升级版)Myloader(mydumper附…

Flutter 3.10 之 Flutter Web 路线已定,可用性进一步提升,快来尝鲜 WasmGC

随着 Flutter 3.10 发布,Flutter Web 也引来了它最具有「里程碑」意义的更新,这里的「里程碑」不是说这次 Flutter Web 有多么重大的更新,而是 Flutter 官方对于 Web 终于有了明确的定位和方向。 提升 首先我们简单聊提升,这不是…

用处巨广的操作符,快来学学叭(C语言版)

🤩本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 🥰内容专栏:这里是《C知识系统分享》专栏,笔者用重金(时间和精力)打造,基础知识一网打尽&#xff0c…