Linux如何下载安装软件超详细解析

网上很多Linux下载软件的方法,看了很多帖子感觉Linux下载软件的方式有很多,每个人都有自己的习惯,对于一个新手来说及其不友好,有时候会看的很蒙。在这里做出总结。

大家好,又见面了,我是你们的朋友全栈君。

一、简介

网上很多Linux下载软件的方法,看了很多帖子感觉Linux下载软件的方式有很多,每个人都有自己的习惯,对于一个新手来说及其不友好,有时候会看的很蒙。在这里做出总结。

二、简单原理

Linux可以识别的包

只有懂得原理才能无懈可击,万变不离其宗。

1、源码包

源代码包{

 优点:
  开源:如果有足够能力,可以修改源代码
  可以自由选择所需的功能
  软件是编译安装,所以更加适合自己的系统,更加稳定也效率高
  卸载方便:直接删除文件夹
 缺点:
  安装过程步骤较多,尤其是安装较大的软件集合(如:LAMP环境搭建),容易出现拼写
  错误
  编译时间较长,安装比二进制安装时间长
  因为是编译安装,安装过程中一旦报错新手很难解决
}

2、rpm包

二进制包:与源代码区别就是源代码包经过编译成为机器能直接识别的二进制包{

 优点:
  包管理系统简单,只需要几个命令就可以实现包的安装、升级、查询和卸载
  安装速度比源码包快
 缺点:
  经过编译,不可以看到源代码
  功能选择不如源代包灵活
  依赖性
}

RPM包管理-rpm命令管理

下面的是一个软件的包名

httpd-2.2.15-15.e16.contos.1.i686.rpm

  • httpd:软件包名
  • 2.2.15:软件版本
  • 15:软件发布的次数
  • el6.centos:适合的Linux平台
  • i686:适合的硬件平台
  • rpm:rpm包扩展名

依赖性

提到软件安装,不得不说的就是软件具有依赖性:通俗了讲就是一个软件要运行起来必须要依赖其他的软件或程序。
感觉很像:在Win上玩游戏需要下载很多的Visual C++ 2005什么的。

  • 在Linux中依赖形式种类
    1)树形依赖:a->b->c
    a依赖b;b依赖c;
    2)环形依赖:a->b->c->a(这种安装相对复杂)
    a依赖b;b依赖c;c又依赖a;
  • 提供一个可以查询依赖的网站
    我们在安装时候它提示:缺少***so.数字结尾的都是库依赖
    查询依赖(www.rpmfind.net)

默认安装位置

RPM默认安装路径:

/etc 一些设置文件放置的目录如/etc/crontab
/usr/bin 一些可执行文件
/usr/lib 一些程序使用的动态函数库
/usr/share/doc 一些基本的软件使用手册与帮助文档
/usr/share/man 一些man page文件

三、获取软件的方法

1、ftp文件传输软件

2、wget直接网站下载

详情查看:https://blog.csdn.net/weixin_42119415/article/details/100551739

四、Linux查询软件是否安装

使用:
rpm -q 包名
	选项:
		-q(query)			查询
		-a(all)			所有

五、Linux的软件安装方法

注意:在安装源码包前一定要有gcc编译器
阅读下面yum安装gcc很方便。
一起输入命令,回车执行命令

1、rpm源码包安装

(1)安装

注意这里必须是包全名

使用:
rpm -ivh 包全名
	选项:
		-i(install)		安装
		-v(verbose)		显示详细信息
		-h(hash)			显示进度
		--nodeps			不检测依赖性

(2)升级

注意:这里可以不用包全名,U要大写

使用:
rpm -Uvh 包名
	选项:
		-U(upgrade)			升级

(3)卸载

注意:这里可以不用包全名

使用:
rpm -e 包名
	选项:
		-e(erase)				卸载
		--nodeps				不检查依赖性

(5)RPM包安装位置

默认安装:

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

2、yum安装,方便便捷,依赖自动解决

(1)查询可用软件列表

yum list
yum search 关键字

(2)安装

yum会自动安装依赖,很方便

yum -y install 包名
	选项:
		install				安装
		-y					自动回答yes

(3)升级

此时注意如果不加包名:会出现把所有软件包都升级包括Linux内核,但是Linux升级完成后需要在本地进行配置,如果是远程服务器管理的话,你会出现服务器永远启动不了

yum -y updata 包名
	选项:
		updata				升级
		-y					自动回答yes

(4)卸载

yum卸载会把依赖也卸载,要注意

yum -y remove 包名
	选项:
		remove				卸载
		-y					自动回答yes

3、解压后直接使用

解压完最好先看README.md,或者找一找网上的教程
例如:
压缩格式的软件
使用对应压缩命令,把软件解压后直接使用

>1
.tar压缩格式
	压缩:
	tar 选项[-zcf] [压缩后文件名] [目录]
		-c					打包
		-v					显示详细信息
		-f					指定文件名
		-z					打包同时压缩
	解压:
	tar -zxvf 包名
		-x					解包
		-v					显示详细信息
		-f					指定解压文件
		-z					解压缩
>2
.zip压缩格式
	压缩:
	zip 选项[-r] [压缩后文件名] [文件或目录]
		-r					压缩目录
	解压:
	基本格式:unzip [选项] file[.zip]
  -Z        以形如 ls -l 的格式显示目标文件内容
  -Z1        仅显示压缩文件内容的文件名
  -l        显示压缩文件中包括时间、占用空间和文件名等信息
  -t        在内存中解压文件并进行文件的完整性校验(CRC校验)
  -f        将磁盘上已经存在且内容新于对应磁盘文件的压缩内容解压出来
  -n        解压缩时不覆盖已存在的文件(而是跳过)
  -q        安静模式,仅解压缩而不输出详细信息
  -d dir      将文件解压至dir指定的文件夹中
>3
.bz2压缩格式
	压缩:
	bzip2 选项[-k] [文件]
		-k						产生压缩文件后保留原文件
	解压:
	bzip2 选项[-k] [文件]
	指令选项:(默认功能为压缩)
		-k						产生压缩文件后
		-c						将输出写至标准输出
		-d						进行解压操作
		-v						输出压缩/解压的文件名和压缩比等信息
		-k						在压缩/解压过程中保留原文件
		-digit					digit部分为数字(1-9),代表压缩速度,digit越小,
								则压缩速度越快,但压缩效果越差,digit越大,
								则压缩速度越慢,压缩效果越好。默认为6.
>4
.gz压缩格式
基础格式: gzip [Options] file1 file2 file3
  指令选项:(默认功能为压缩)
  -c							将输出写至标准输出,并保持原文件不变
  -d							进行解压操作
  -v							输出压缩/解压的文件名和压缩比等信息
  -digit						digit部分为数字(1-9),代表压缩速度,digit越小,
  								则压缩速度越快,但压缩效果越差,
  								digit越大,则压缩速度越慢,压缩效果越好。
  								默认为6.

我是文文,问题请指正

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127870.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(2)
blank

相关推荐

  • webstorm 2021激活码【2021.8最新】

    (webstorm 2021激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • mysql的左连接和右连接(内连接和自然连接的区别)

    获取boy、girl表下载地址一、内连接查询innerjoin关键字:innerjoinon语句:select*froma_tableainnerjoinb_tablebona.a_id=b.b_id;说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集(阴影)部分。案例解释:在boy表和girl表中查出…

  • dpdk技术详解_dpdk acl

    dpdk技术详解_dpdk acligb_uio是dpdk内部实现的将网卡映射到用户态的内核模块,它是uio模块的一个实例。igb_uio是一种pci驱动,将网卡绑定到igb_uio隔离了网卡的内核驱动,同时igb_uio完成网卡中断内核态初始化并将中断信号映射到用户态。igb_uio与uio模块密切相关,我将从uio模块着手分析igb_uio模块的工作原理。uio模块分析uio可以看做是一种字符设备驱动,在此驱动中注册了单独的file_operations函数表,uio设备可以看做是

    2022年10月25日
  • hibernate和mybatisplus区别_hibernate3

    hibernate和mybatisplus区别_hibernate3hibernate和mybatis区别对比

  • ReleaseMutex用法

    ReleaseMutex用法Mutex中提供了WiteOne,ReleaseMutex两个实例方法~WiteOne的作用是”阻塞当前线程,提供对该线程的原子操作”也就是说当一个线程遇到WiteOne的时候,如果在WiteOne里面没有线程在操作,则此线程进去操作而里面有线程的时候,所有到此的线程均需要排队等候里面的线程执行完毕~而控制这样操作的结束标记就是使用ReleaseMutex方法!就好比WiteO…

  • python官方库和第三方库_网络爬虫第三方库

    python官方库和第三方库_网络爬虫第三方库Python的强大之处除了它的简洁易用,最厉害的就是它有着广泛的第三方库支持。今天小编就带你看下Python有哪些常用第三库吧,知道且用过超过10个的欢迎留言~文本处理与格式转换Char…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号