LINUX下安装软件命令详解

2023-11-20

一、 解析Linux应用软件安装包:

通常Linux应用软件的安装包有三种:
 1) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。
 2) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux提供的一种包封装格式。
 3) dpkg包,如software-1.2.3-1.deb。它是Debain Linux提供的一种包封装格式。
      而且,大多数Linux应用软件包的命名也有一定的规律,它遵循:
   名称-版本-修正版-类型
    例如:
    1) software-1.2.3-1.tar.gz 意味着:
    软件名称:software
    版本号:1.2.3
    修正版本:1
     类型:tar.gz,说明是一个tar包。
    2) sfotware-1.2.3-1.i386.rpm
    软件名称:software
    版本号:1.2.3
    修正版本:1
    可用平台:i386,适用于Intel 80x86平台
    类型:rpm,说明是一个rpm包。
    注:由于rpm格式的通常是已编译的程序,所以需指明平台。在后面会详细说明。
    而software-1.2.3-1.deb就不用再说了吧!大家自己练习一下。

二、 了解包里的内容:

一个Linux应用程序的软件包中可以包含两种不同的内容:
  1) 一种就是可执行文件,也就是解开包后就可以直接运行的。在Windows中所 有的软件包都是这种类型。安装完这个程序后,你就可以使用,但你看不到源程序。而且下载时要注意这个软件是否是你所使用的平台,否则将无法正常安装。
  2) 另一种则是源程序,也就解开包后,你还需要使用编译器将其编译成为可执行文件。这在Windows系统中是几乎没有的,因为Windows的思想是不开放源程序的。
  通常,用tar打包的,都是源程序;而用rpm、dpkg打包的则常是可执行程序。一般来说,自己动手编译源程序能够更具灵活性,但也容易遇到各 种问题和困难。而相对来说,下载那些可执行程序包,反而是更容易完成软件的安装,当然那样灵活性就差多了。所以一般一个软件总会提供多种打包格式的安装程 序的。你可以根据自己的情况来选择。

三、 搞定使用tar打包的应用软件

  1. 安装:
  整个安装过程可以分为以下几步:
  1) 取得应用软件:通过下载、购买光盘的方法获得;
  2)解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar –xvzf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包;
  3) 阅读附带的INSTALL文件、README文件;
  4) 执行“./configure”命令为编译做好准备;
  5) 执行“make”命令进行软件编译;
  6) 执行“make install”完成安装;
  7) 执行“make clean”删除安装时产生的临时文件。
好了,到此大功告成。我们就可以运行应用程序了。但这时,有的读者就会问,我怎么执行呢?这也是一个Linux特色的问题。其实,一般来说, Linux的应用软件的可执行文件会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这个软件的 INSTALL和README文件,一般都会有说明。

 2. 卸载:
  通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。
  那么是不是说就不能够卸载呢!其实也不是,有两个软件能够解决这个问题,那就是KinstallKife,它们是tar包安装、卸载的黄金搭档。它们的使用方法,笔者会另行文介绍。在此就不加赘述了。

四、 搞定使用rpm打包的应用软件

rpm可谓是Redhat公司的一大贡献,它使Linux的软件安装工作变得更加简单容易。

1. 安装:
  我只需简单的一句话,就可以说完。执行:rpm –ivh rpm软件包名
  更高级的,请见下表:
   rpm   参数 参数说明
     -i     安装软件
     -t     测试安装,不是真的安装
     -p    显示安装进度
     -f     忽略任何错误
    -U     升级安装
     -v     检测套件是否正确安装

这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。

2. 卸载:
    我同样只需简单的一句话,就可以说完。执行:
  rpm –e 软件名
不过要注意的是,后面使用的是软件名,而不是软件包名。例如,要安装software-1.2.3-1.i386.rpm这个包时,应执行:
             rpm –ivh software-1.2.3-1.i386.rpm
    而当卸载时,则应执行: rpm –e software
    另外,在Linux中还提供了象GnoRPMkpackage等图形化的RPM工具,使得整个过程会更加简单。这些软件的具体应用,笔者会另行文介绍。

五、 搞定使用deb打包的应用程序


  这是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得更早,所以在各种版本的Linux都常见到。而debian的包管理器dpkg则 只出现在Debina Linux中,其它Linux版本一般都没有。我们在此就简单地说明一下:

 1. 安装
        dpkg –i deb软件包名
   如:dpkg –i software-1.2.3-1.deb

   2. 卸载
         dpkg –e 软件名
  如:dpkg –e software
    

===================================================================================

六、软件的安装 


  ---- Linux下软件的安装主要有两种不同的形式。第一种安装文件名为filename.tar.gz。另一种安装文件名为 filename.i386.rpm。以第一种方式发行的软件多为以源码形式发送的。第二种方式则是直接以二进制形式发行的。i386即表示该软件是按 Inter 386指令集编译生成的。
  ---- 对于第一种,安装方法如下: 
  ---- 首先,将安装文件拷贝至你的目录中。例如,如果你是以root身份登录上的,就将软件拷贝至/root中。 
  ---- #cp filename.tar.gz /root 
  ---- 由于该文件是被压缩并打包的,所以,应对其解压缩。命令为: 
  ---- #tar xvzf filename.tar.gz 
  ---- 执行该命令后,安装文件按路径,解压缩在当前目录下。用ls命令可以看到解压缩后的文件。通常在解压缩后产生的文件中,有名为"INSTALL"的文件。该文件为纯文本文件,详细讲述了该软件包的安装方法。
  ---- 对于多数需要编译的软件,其安装的方法大体相同。执行解压缩后产生的一个名为configure的可执行脚本程序。它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备。命令为:
  ---- #./configure 
  ---- 如果检查过程中,发现有错误,configure将给予提示,并停止检查。你可以跟据提示对系统进行配置。再重新执行该程序。检查通过后,将生成用于编译 的MakeFile文件。此时,可以开始进行编译了。编译的过程视软件的规模和计算机的性能的不同,所耗费的时间也不同。命令为:
  ---- #make 
  ---- 成功编译后,键入如下的命令开始安装: 
  ---- #make install 
  ---- 安装完毕,应清除编译过程中产生的临时文件和配置过程中产生的文件。键入如下命令: 
  #make clean 
  #make distclean 

  至此,软件的安装结束。 
  ---- 对于第二种,其安装方法要简单的多。 
  ---- 同第一种方式一样,将安装文件拷贝至你的目录中。然后使用rpm来安装该文件。命令如下: 
  ---- #rpm -i filename.i386.rpm 
  ---- rpm将自动将安装文件解包,并将软件安装到缺省的目录下。并将软件的安装信息注册到rpm的数据库中。参数i的作用是使rpm进入安装模式。 
  ---- 另外,还有一些Linux平台下的商业软件。在其安装文件中,有Setup安装程序,其安装方法同Windows平台下的一样。如:Corel WordPerfect
  软件的卸载 
  ---- 软件的卸载主要是使用rpm来进行的。卸载软件首先要知道软件包在系统中注册的名称。键入命令: 
  ---- #rpm -q -a 
  ---- 即可查询到当前系统中安装的所有的软件包。参数q的作用是使rpm进入查询命令模式。参数a是查询模式的子参数,意为全部(ALL)。查询到的信息较多,可使用less人屏显示。
  ---- 确定了要卸载的软件的名称,就可以开始实际卸载该软件了。键入命令: 
  ---- #rpm -e [package name] 
  ---- 即可卸载软件。参数e的作用是使rpm进入卸载模式。对名为[package name]的软件包进行卸载。由于系统中各个软件包之间相互有依赖关系。如果因存在依赖关系而不能卸载,rpm将给予提示并停止卸载。你可以使用如下的命 令来忽略依赖关系,直接开始卸载:
  ---- #rpm -e [package name] -nodeps 
  ---- 忽略依赖关系的卸载可能会导致系统中其它的一此软件无法使用。你可以使用 
  ---- #rpm -e [package name] -test 
  ---- 使rpm进行一次卸载预演,而不是真正卸载。这样可以使你检查一下软件是否存在有依赖关系。卸载过程中是否有错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LINUX下安装软件命令详解 的相关文章

  • 为 Qt 应用程序创建 Linux 安装

    我刚刚用 Qt Creator 制作了一个很棒的程序 我对自己很满意 如何将其从台式机移至笔记本电脑 那么 最好的方法是安装程序 对吗 对于 Ubuntu 这是一个 Debian 软件包 对吗 我怎么做 有人这样做过吗 他们可以分享 QT
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 在Linux中断上下文中运行用户线程

    我正在编写一些定制的应用程序 并允许更改 Linux 内核中的中断处理程序代码 我有一个用户线程正在等待中断发生 如果发生中断 那么我要做的第一件事就是执行该用户线程 有什么办法让它发挥作用吗 Thanks 创建一个字符设备 这就是内核所做
  • 如何以编程方式从Linux中的进程名称获取进程ID

    在我的项目中 我们使用 ACE 自适应通信环境 中间件来编写可在 Windows 和 Linux 上运行的独立于操作系统的代码 要求是从进程名称中获取进程 ID 由于 ACE 不支持这一点 因此我们必须使用特定于平台的宏来分离 Window
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • 从 TypeScript 运行任何 Linux 终端命令?

    有没有办法直接从 TypeScript 类中执行 Linux 终端命令 这个想法是做类似的事情 let myTerminal new LinuxTerminal let terminalResult myTerminal run sudo
  • 如何使用 sed 仅删除双空行?

    我找到了这个问题和答案 https stackoverflow com questions 4651591 howto use sed to remove only triple empty lines关于如何删除三重空行 但是 我只需要对
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 并行运行 make 时出错

    考虑以下制作 all a b a echo a exit 1 b echo b start sleep 1 echo b end 当运行它时make j2我收到以下输出 echo a echo b start a exit 1 b star
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • Locale.getDefault() 始终返回 en

    unix 机器上的服务器始终使用 en 作为默认区域设置 以下是区域设置输出 LANG en US LC CTYPE C LC NUMERIC C LC TIME C LC COLLATE C LC MONETARY C LC MESSAG
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • GLIBCXX_3.4.26 未找到在 BeagleBone 上运行交叉编译的程序

    我有以下程序 include
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp

随机推荐

  • Deque接口简介说明

    转自 Deque接口简介说明 下文笔者讲述Deque接口的简介说明 如下所示 Deque简介 Deque接口是一个双端队列 可以对队列的头尾进行操作 所以也可以当做栈来使用 Queue和Deque接口的相对应方法 Queue方法 Deque
  • 完美解决SpringMVC中org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping 404错误

    错误原因描述 出现该错误的原因主要是无法扫描注册 Controller注解的类的实例进入IOC容器而导致的 从而从一下几个方面来分析 MVC配置文件中 component scan 标签扫描包路径是否正确 且是否误写了排除 Controll
  • 《深入理解计算机系统》实验四Architecture Lab

    前言 深入理解计算机系统 实验四Architecture Lab下载和官方文档机翻请看 深入理解计算机系统 实验四Architecture Lab下载和官方文档机翻 我觉得这个文档对整个实验很有帮助 如果你的Y86 64环境还没安装好可以看
  • 一个互联网研发团队的标准配置

    做一件大事 通常会产生一个组织 对于一个组织来说 确定了梦想和目标之后 首要的事情是 组织分工和明确 权责 权利和责任分不清楚 效率必定低下 读书阶段的时候 无论是学习 还是做事 从来没有深刻地感受过 事倍功半 和 事半功倍 工作之后 经历
  • JavaEE简单示例——在使用Tomcat的时候可能出现的一些报错

    简单介绍 在我们之前使用Tomcat的时候 经常会出现在启动的时候因为一些报错导致项目无法正常的启动 我们就对一些比较常见的报错来看一下可能导致的原因 以及出现报错之后如何去解决 严重 Failed to initialize end po
  • 汇率之谜:揭秘黄金折算与真实人民币汇率的神秘差距

    导言 人民币是中国的官方货币 其汇率在国际贸易和金融市场中扮演着至关重要的角色 然而 观察到黄金折算的人民币汇率与真实人民币汇率之间存在显著差距 本文将探讨这一差距的原因以及它所暗示的经济现象 汇率基础知识 首先 让我们了解一下汇率的基础知
  • Linux服务器远程访问通过Tomcat部署的静态资源

    一 安装Java和Tomcat 1 1 安装Java 下载jdk8 切换到root用户 创建文件夹 usr local java 将下载的jdk压缩包上传到该目录下 解压 mkdir usr local java cd usr local
  • 8、配置多生成树技术(MSTP协议)

    什么是生成树技术 在局域网通信中 为了能确保网络连接的可靠性和稳定性 常常需要网络提供冗余链路 而所谓的 冗余链路 就是当一条通信信道遇到堵塞或者不通畅时 就启用别的通信信道 冗余就是准备两条以上的链路 如果主链路不通了 就启用备用链路 什
  • 树梅派应用19:树莓派安装OpenWRT做路由器图文详解

    在玩OP之前 你需要一个靠谱的以太网卡 一个型号为RTL8192CU AR9271的无线网卡 官方芯片的无线网卡都可以 随便大小的SD卡或者TF卡 都是可以的 由于没有高手指导 我算是走了不少弯路 废话不多说 首先 下载OpenWRT的系统
  • 若依单体版添加免密登录

    若依单体版添加 免密登录 的流程在其官网有流程 若依常见问题地址 可以查询到 如何实现用户免密登录配置方法 具体代码官网都有 记录一下实际操作部分细节 1 LoginService添加login方法 去掉密码验证 可能是若依框架更新频繁 网
  • mysql8.0.18数据恢复方法-ibd文件恢复(innodb引擎)

    1 创建同名数据库 2 创建相同的表 3 使用ALTER TABLE 数据库名 表名 DISCARD TABLESPACE 4 将ibd文件拷贝到数据库的数据目录下 5 使用ALTER TABLE 数据库名 表名 IMPORT TABLES
  • apt-get: command not found

    CentOS5 4 apt get install gcc bash apt get command not found 解答 CentOS的软件安装工具不是apt get 是yum yum y install gcc 在ubuntu下安装
  • 检索 COM 类工厂中 CLSID 为 {} 的组件时失败,原因是出现以下错误: 80040154没有注册类.(注册组件的方法)

    执行程序报错如下 原因 没有注册rmReport组件 解决办法 注册组件 注册组件方法如下 首先你要知道你要注册哪个文件 并且找到它 上图报错位置那个变量是我要注册的文件 并且我在自己的项目中找到了它 之后打开C Windows Syste
  • 仅需一个样本即可定制个性化的SAM

    Personalize Segment Anything Model with One Shot https arxiv org pdf 2305 03048 pdf https github com ZrrSkywalker Person
  • shell脚本之循环语句

    for循环 语法1 for i in 集合 do 程序 done 语法2 for i 0 i lt 100 i do 程序 done eg 批量压缩文件 bin bash 批量压缩文件 cd root ls tar gz gt ls log
  • Flutter屏幕适配之二:Image资源assets的使用,实现不同分辨率图片的适配

    这两天在研究Flutter的屏幕适配方案 关于尺寸大小已经有点眉目了 初步定了利用等比例缩放 感兴趣的朋友可移步Flutter屏幕大小适配 但是还是不清楚怎么进行图片分辨率适配的 在百度了之后 仍然有点云里雾里 罢了 直接上官网看吧 果然
  • 【机器学习】入门:为什么梯度下降算法这么有效?

    译者 张雨佳 人们很难真正通过数学理解东西 你只需要去习惯并使用它 约翰 冯 诺伊曼 在机器学习中 我们已经习惯了使用梯度下降法解决问题 以至于没人去质疑它为什么有效 大家经常将梯度下降法模拟为爬山 要想找到崎岖地形中的顶峰 或低谷 就必须
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • 使用SVD求最小二乘刚性转置

    参见文章 Least Squares Rigid Motion Using SVD 一 问题描述 假设P p1 p2 pn 和Q q1 q2 qn 是两组Rd空间中的对应点集 现在想要根据这个两个点集的数据来计算出它们之间的刚性转置信息 可
  • LINUX下安装软件命令详解

    一 解析Linux应用软件安装包 通常Linux应用软件的安装包有三种 1 tar包 如software 1 2 3 1 tar gz 它是使用UNIX系统的打包工具tar打包的 2 rpm包 如software 1 2 3 1 i386