Linux上获取软件程序包有多种方式。
一种是从Linux的软件源(可以类比于手机上的“应用市场”)上网络下载。
一种是源代码安装方式,从软件的官方网址下载应用于Linux平台的软件包,这种软件包文件格式一般是.tar、tar.gz、tar.bz2等。解压后需要用户自己执行make命令编译、make install命令安装。
还有一种是二进制安装方式,也是从软件的官方网址下载应用于Linux平台的软件包,文件格式一般也是.tar、tar.gz、tar.bz2等,但是不用用户自己编译了,只要用户解压后配置环境变量或者其他一些软件参数就可以了。
相比较而言,从Linux软件源获取软件包更复杂,比如rpm、yum、apt、apt-get这几个命令的区别。

Linux软件源下载软件

软件源根据不同的Linux发行版有不同的称呼。
Linux家族有三个软件源系统:
yum源:使用这种软件管理器的主要是RedHat(红帽)家族,如CentOS
apt源:使用这种软件管理器的主要是Debian家族,如Ubuntu
Pacman源:使用这种软件管理器的主要是ArchLinux家族,如Manjaro

rpm命令

用于RedHat家族,如CentOS系统安装rpm包。
rpm的全称为Red Hat Package Manager,也就是RedHat包管理器。在RedHat等操作系统中是通过rpm命令实现对rpm软件包的安装和删除等操作。
rpm命令常用的选项包括: -i(install 安装),-e(erase 删除),-U(upgrade 升级)和-q(query 查询)。
目前更多的使用rpm命令的替代者yum命令。

yum命令

用于RedHat家族,如CentOS系统安装rpm包。
rpm命令只是用来管理单个软件包,但是在Linux系统中很多软件包还需要依赖其它软件。如果通过人工的方式来安装这些软件不仅效率低,而且容易出错。而yum就是用来自动安装一组软件的工具,它其实是对rpm的封装,实现了依赖软件包的自动化安装。
yum是Yellow dog Updater, Modified的简称,起初是由yellow dog这一发行版的开发者Terra Soft研发。
yum语法:

yum [选项] 命令 软件包名称

选项:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
命令:安装install、查询list、更新update、删除remove
yum -help命令可以查看关于yum其他命令的使用方法。

查看

列出所有可安装的安装包
简单来说是查看软件源(应用市场)都有哪些软件

yum list

列出本机已经安装的软件

yum list installed

查询指定的软件包安装状态
语法:

yum list 软件包名称

示例:查看本机中软件包tree的安装状态
下图中“Available Packages”表示本机未安装tree,软件源中有tree。

安装tree后再次查询,发现结果显示“Installed Packages”,这表示本机已经安装tree。

查询软件源是否有指定的软件包
使用grep过滤,示例:查询软件源是否有名称中含“tree”字符串的软件

yum list | grep tree


查看本机是否安装了指定的软件包
示例:查看本机是否安装了tree

yum list installed | grep tree


示例显示的结果是没有安装。当然,我更愿意使用yum list tree。
查看软件包信息

yum info 软件包名称

示例:

搜索程序位置

Linux系统下可以通过which命令来查找文件、程序的所在位置。
which
查看某个命令的目录位置。从环境变量PATH中,定位/返回与指定名字相匹配的可执行文件所在的路径。一般用于查找命令/可执行文件所在的路径。有时候可能在多个路径下存在相同的命令,该命令可用于查找当前所执行的命令到底是哪一个位置处的命令。
语法:

which 命令名称

示例:查看java命令的位置

安装

语法:

yum [选项] install 软件包名称

建议使用选项“-y”,这表示软件安装过程中与用户交互的提示用户都选择yes。

yum -y install 软件包名称

如果不添加选项,以安装tree软件为例

yum install tree

软件安装过程中可能有安装提示,如下图

所以安装命令建议使用:

yum -y install tree

同理,删除软件和更新软件也是要加入“-y”选项。
选项“-y”可以在命令install、remove、update的前面或者后面。

删除yum安装的软件

语法:

yum -y remove 软件包名称

示例:

yum -y remove tree

更新

语法:

yum -y update 软件包名称

清除残余

清除缓存目录下的软件包

yum clean packages

清除缓存目录下的 headers

yum clean headers

清除缓存目录下旧的 headers

yum clean oldheaders

清除所有

yum clean all

配置yum源

apt命令

用于Debian家族,如Ubuntu系统安装deb包。

源代码安装方式

通过ftp工具或者wget、curl等命令获取软件包后,一般经过解压(如tar zxf xx.tar.gz)、配置(如./configure)、编译(make)、安装(make install)这四个主要步骤即可完成安装。

二进制安装方式

二进制包的安装比较简单,我们需要做的只是将从网络上下载的二进制包解压后放到合适的目录,然后将包含可执行的主程序文件的目录添加进PATH环境变量即可。

Linux上获取软件程序包相关推荐

  1. linux上开发应用程序_如何在Linux上安装软件应用程序

    linux上开发应用程序 如何在Linux上安装应用程序? 与许多操作系统一样,该问题不仅有一个答案. 应用程序可以来自许多来源-几乎无法计数-每个开发团队都可以以自己认为最佳的方式交付软件. 知道如 ...

  2. Linux从头开始学--学习笔记9知识点补充-ubuntu,centos;在linux上创建c程序;linux基础命令,shell命令,vi命令,man帮助手册

    这是我从头开始学习Linux的学习笔记,后续还会更新. 记录自己的技术成长,也希望和大家分享交流,欢迎关注~ 本笔记为coursera网站课程<Linux for Developers>的 ...

  3. 在 Linux 上安装软件的 3 种方法

    在 Linux 上安装软件的 3 种方法 转载自DLonng的Blog https://dlonng.com/posts/linux-install-soft 前言 学习 Linux 必须要学会如何安 ...

  4. linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间

    1 linux上根据运行程序的进程号,查看程序所在的绝对路径 1.如下,我想查看python 25_run_train_tripletloss_sknet_8w_offline_c_plus.py 这 ...

  5. Android之获取应用程序(包)的大小-----PackageManager的使用(二)

    http://blog.csdn.net/qinjuning/article/details/6892054 通过第一部分 << Android中获取应用程序(包)的信息-----Pack ...

  6. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...

    Android中获取应用程序(包)的信息PackageManager的使用(一) 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等 ...

  7. linux上常用软件详细列表

    linux上常用软件详细列表     Windows软件在Linux上的等价/替代/模仿软件列表 Last update: 16.07.2003, 31.01.2005, 27.05.2005 您可在 ...

  8. linux软件不能通过验证,Linux上安装软件之前先验证软件包合法性

    以前有为Linux专家说过一句很经典的话"小即是美".这句话一针见血的道出了Linux操作系统的设计特点.Linux操作系统跟微软操作系统不同,它都是一个个相对独立的软件所构成的一 ...

  9. Linux get cpu number,Linux上获取CPU Core个数的实现

    Linux上获取CPU Core个数的实现 可以通过多种手段取得CPU Core的个数,如: 1) 调用系统提供的函数get_nprocs(),可以在头文件sys/sysinfo.h中发现它 2) 借 ...

  10. Linux上安装软件软件汇总

    Linux上安装软件汇总 会持续更新 1 安装jdk 1.下载文件 文件资源链接: https://pan.baidu.com/s/1xmqBb2g8EG220RdDPaasig 提取码:ccjj 2 ...

最新文章

  1. 在adapter中startactivityforresult
  2. JVM中GC的停顿现象
  3. mac java+selenium 实现UI自动化1_琉璃
  4. Listview中使用线程实现无限加载更多项目的功能
  5. SAP OData:How is note $expand being implemented
  6. C++:new[]和delete[]一定要配对使用吗?
  7. 2011北理机试题——层次关系
  8. Spring--超简单利用quartz实现定时作业
  9. ML/DL-复习笔记【七】- 偏差和方差
  10. Django-组件拾遗
  11. 科研英文论文翻译工具——Copytranslator
  12. python实现qq空间自动点赞
  13. 可视对讲行业洗牌进行时 企业应该何去何从?
  14. 开发一个app多少钱?app开发费用明细、app开发成本计算
  15. PGSQL Key (id)=(1) already exists.
  16. 三步实现自动注册工厂替代switch语句(c++)
  17. 硬件设计之一——电源设计01:电源防护
  18. 高端访谈实录:访思科英国CEO菲尔·史密斯
  19. SAP770系统FI模块配置(给科目表分配公司代码)
  20. 4.什么是MESI缓存一致性协议?怎么解决并发的可见性问题?

热门文章

  1. 计算机密码突然不正确,win10开机密码明明正确,win10密码突然不对了
  2. verilog实现格雷码与二进制码的互换
  3. 人类简史下载pdf_人类简史 从动物到上帝pdf电子书下载
  4. 深入探讨apply()方法的作用
  5. java多线程 —— 面试题集合(最全集合)
  6. 站长屋VPS独家erphpdown10.2会员中心美化页面wordpress通用插件
  7. 什么是视频封装格式和编码格式
  8. 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第五章
  9. 【历史上的今天】1 月 14 日:IBM 计算机先驱诞生;Windows 7 寿终正寝;诺基亚收购阿尔卡特
  10. 算法导论 斐波那契堆