首页 > 系统相关 >11、Linux软件安装及使用

11、Linux软件安装及使用

时间:2024-09-24 17:49:00浏览次数:9  
标签:11 包名 RPM Linux YUM yum 软件包 软件 安装

Windows软件安装流程

  1. 安装检查: 检查系统是否满足软件的安装要求,包括操作系统版本、硬盘空间、内存要求等。
  2. 释放文件: 解压安装包中的文件到临时目录。
  3. 复制可执行文件: 将主要的可执行文件复制到指定的安装路径。
  4. 安装DLL动态链接库/安装服务: 根据需要安装动态链接库文件(DLL)和注册系统服务。
  5. 注册表配置: 将软件的配置信息写入Windows注册表,以便系统和其他软件能够正确识别和使用。
  6. 开始菜单和快捷方式: 创建开始菜单项和桌面快捷方式,方便用户启动软件。

Windows安装文件

  • Windows可执行程序: 可执行文件通常是以“.exe”或“.msi”结尾的文件。
    image
    image

Linux可执行程序

  • /bin: 包含基本用户命令的可执行文件。
  • /sbin: 包含系统管理员使用的系统命令。
  • /usr/bin: 包含大多数用户命令的可执行文件。
  • /usr/sbin: 包含系统管理员使用的一些系统命令。

脚本和程序的区别

  • 不需要编译的语言:

    • JavaScript: 解释型语言,通过浏览器或Node.js环境执行。
    • Python: 解释型语言,通过Python解释器执行。
    • Ruby: 解释型语言,通过Ruby解释器执行。
  • 需要编译的语言:

    • C: 编译型语言,通过C编译器(如GCC)生成可执行文件。
    • C++: 编译型语言,通过C++编译器(如G++)生成可执行文件。
    • Swift: 编译型语言,通过Swift编译器生成可执行文件。
    • Kotlin: 编译型语言,通过Kotlin编译器生成可执行文件。
    • Go: 编译型语言,通过Go编译器生成可执行文件。
  • 解释型: 代码在执行时逐行解释运行,不需要事先编译成机器码。

  • 编译型: 代码在执行前需要通过编译器编译成机器码,然后由计算机直接执行。

  • : Java介于两者之间,采用“编译+解释”的混合模式,先通过编译生成字节码,再由JVM(Java虚拟机)解释执行。

Linux软件常见安装方式

  • 源码编译: 使用make命令编译源码安装软件。
  • RPM: Red Hat Package Manager,用于Red Hat系发行版的软件包管理工具。
  • DEB: Debian Package,用于Debian系发行版的软件包管理工具。
  • YUM: Yellowdog Updater Modified,CentOS和Fedora等发行版的软件包管理工具。
  • APT: Advanced Package Tool,用于Debian和Ubuntu等发行版的软件包管理工具。
  • Docker: 使用容器技术部署和运行应用程序,避免依赖和环境问题。

Linux主要流派

Red Hat派系

  • 主要发行版: Red Hat, CentOS, Fedora
  • 主要安装方式:
    • dnf: Fedora的包管理工具。
    • yum: CentOS和旧版Red Hat的包管理工具。
    • rpm: 使用RPM包格式的软件包管理工具。
    • make: 用于源码编译安装。

Debian派系

  • 主要发行版: Kali, Ubuntu
  • 主要安装方式:
    • apt: Advanced Package Tool,用于软件包的管理和安装。
    • dpkg: Debian软件包管理器,底层工具。
    • deb: Debian软件包格式。

FreeBSD系

  • 主要发行版: FreeBSD
  • 主要安装方式:
    • pkg: FreeBSD的包管理工具。
    • ports: FreeBSD的源码包管理系统,用于源码编译安装。
    • make: 用于源码编译安装。

源码安装

  • 适用范围: 所有Linux发行版
  • 使用工具: make, gcc(GNU Compiler Collection,用于编译C和C++代码),configure(用于生成Makefile的配置脚本)。
    image

RPM安装

image

RPM选项(不能解决RPM软件包之间的依赖关系的问题)

操作命令说明

  • 查询

    • rpm -qa: 查询已安装的所有RPM包。
    • rpm -q 包名: 查询特定包的安装状态。-q表示query参数。
  • 安装

    • rpm -ivh 包名: 安装RPM包。
      • -i: 表示安装(install)。
      • -v: 显示详细信息(verbose)。
      • -h: 显示安装进度条(hash)。
    • 可以同时安装多个RPM包,每个包名之间用空格分隔:
      rpm -ivh 包名1 包名2 包名3
      
  • 升级

    • rpm -Uvh 包名: 升级RPM包。
      • -U: 如果包已经安装,则升级到最新版(install or upgrade)。
      • -v: 显示详细信息(verbose)。
      • -h: 显示升级进度条(hash)。
    • 可以同时升级多个RPM包,每个包名之间用空格分隔:
      rpm -Uvh 包名1 包名2 包名3
      
  • 卸载

    • rpm -e 包名: 卸载RPM包。需要先卸载依赖其的软件。
      • -e: 表示卸载(erase)。
    • 可以同时卸载多个RPM包,每个包名之间用空格分隔:
      rpm -e 包名1 包名2 包名3
      

示例命令

  • 查询已安装的所有RPM包:

    rpm -qa
    
  • 查询特定包的安装状态:

    rpm -q 包名
    
  • 安装单个RPM包:

    rpm -ivh 包名
    
  • 同时安装多个RPM包:

    rpm -ivh 包名1 包名2 包名3
    
  • 升级单个RPM包:

    rpm -Uvh 包名
    
  • 同时升级多个RPM包:

    rpm -Uvh 包名1 包名2 包名3
    
  • 卸载单个RPM包:

    rpm -e 包名
    
  • 同时卸载多个RPM包:

    rpm -e 包名1 包名2 包名3
    

YUM (Yellow dog Updater, Modified)

YUM是一个基于RPM的软件包管理工具,主要用于Red Hat系列的Linux发行版,如CentOS和Fedora。它能够自动处理软件包的依赖关系,并简化安装和更新过程。

YUM操作和选项

  • 列表

    • yum list: 列出可用的软件包。
  • 搜索

    • yum search 包名: 搜索指定的软件包。
  • 安装

    • yum install 包名: 安装指定的软件包。
  • 升级

    • yum update 包名: 升级指定的软件包。
  • 卸载

    • yum remove 包名: 卸载指定的软件包。
  • 更新所有软件包

    • yum update: 更新所有已安装的软件包。
  • 清除缓存

    • yum clean all: 清除所有缓存。
  • 更新YUM缓存

    • yum makecache: 更新YUM的缓存。

选项含义

  • -h: 显示帮助信息。
  • -y: 对所有的提问都回答 "yes"。
  • -c: 指定配置文件。
  • -q: 安静模式。
  • -v: 详细模式。

示例命令

  • 列出所有可用的软件包:

    yum list
    
  • 搜索指定的软件包:

    yum search 包名
    
  • 安装指定的软件包:

    yum install 包名
    
  • 升级指定的软件包:

    yum update 包名
    
  • 卸载指定的软件包:

    yum remove 包名
    
  • 更新所有已安装的软件包:

    yum update
    
  • 清除所有缓存:

    yum clean all
    
  • 更新YUM的缓存:

    yum makecache
    

常用选项

  • 显示帮助信息:

    yum -h
    
  • 对所有的提问都回答 "yes":

    yum install 包名 -y
    
  • 使用指定的配置文件:

    yum -c /path/to/configfile install 包名
    
  • 安静模式:

    yum -q install 包名
    
  • 详细模式:

    yum -v install 包名
    

DNF和YUM的区别

DNF(Dandified YUM)

DNF是YUM的下一个版本,旨在解决YUM中的一些性能和可扩展性问题。以下是DNF和YUM的一些主要区别:

特性 DNF YUM
依赖关系解析 使用Libsolv 使用公开的API
API 有完整的API文档,易于创建新功能 没有完整文档,创建新功能困难
开发语言 C, C++, Python编写 只用Python编写
使用范围 Fedora、RHEL 8、CentOS 8、OEL 8、Mageia 6/7 RHEL 6/7、CentOS 6/7、OEL 6/7
扩展支持 支持各种扩展 只支持基于Python的扩展
内存占用 占用内存少 占用较多内存
软件包更新 包中包含不相关的依赖,则不会更新 在没有验证的情况下更新软件包
存储库不可用处理 DNF将跳过它,并继续使用可用的存储库处理事务 YUM会立即停止
内核包的保护 DNF不提供,可以删除内核包 不允许删除运行中的内核

详细对比

  1. 依赖关系解析

    • DNF: 使用Libsolv库进行依赖关系解析。Libsolv是一个高效的库,用于解决软件包的依赖关系和冲突。
    • YUM: 使用公开的API进行依赖关系解析。
  2. API

    • DNF: 提供完整的API文档,易于创建新的功能和扩展。
    • YUM: 没有完整的API文档,创建新功能和扩展较为困难。
  3. 开发语言

    • DNF: 使用C、C++和Python编写。
    • YUM: 主要使用Python编写。
  4. 使用范围

    • DNF: 适用于Fedora、RHEL 8、CentOS 8、OEL 8、Mageia 6/7等新的Linux发行版。
    • YUM: 适用于RHEL 6/7、CentOS 6/7、OEL 6/7等较旧的Linux发行版。
  5. 扩展支持

    • DNF: 支持各种类型的扩展,使其更具灵活性。
    • YUM: 仅支持基于Python的扩展。
  6. 内存占用

    • DNF: 内存占用较少,性能更优。
    • YUM: 内存占用较多。
  7. 软件包更新

    • DNF: 如果软件包中包含不相关的依赖,则不会更新这些依赖。
    • YUM: 在没有验证的情况下更新软件包。
  8. 存储库不可用处理

    • DNF: 如果某个存储库不可用,DNF会跳过它,并继续使用其他可用的存储库处理事务。
    • YUM: 如果某个存储库不可用,YUM会立即停止操作。
  9. 内核包的保护

    • DNF: 不提供内核包的保护,可以删除内核包。
    • YUM: 不允许删除正在运行的内核,以防止系统崩溃。

Debian系

Deb包安装

Deb包是Debian及其衍生发行版(如Ubuntu)使用的软件包格式。可以使用dpkg命令手动安装Deb包,但更常见的是使用apt工具来管理软件包。

APT(Advanced Package Tool)

APT是Debian系Linux发行版的包管理工具,负责自动化安装、升级、配置和删除软件包。

操作命令

  • 搜索

    • apt search 包名: 搜索指定的软件包。
  • 安装

    • apt install 包名: 安装指定的软件包。
  • 升级

    • apt upgrade: 升级所有已安装的软件包。
  • 卸载

    • apt remove 包名: 卸载指定的软件包。

FreeBSD系

package

FreeBSD的package系统用于安装预编译的软件包,类似于Linux的aptyum

ports

FreeBSD的ports系统用于从源代码编译和安装软件包。它提供了更大的灵活性,但需要更多的时间和资源。

操作命令

  • 搜索

    • pkg search 包名: 搜索指定的软件包。
  • 安装

    • pkg install 包名: 安装指定的软件包。
  • 升级

    • pkg upgrade 包名: 升级指定的软件包。
  • 卸载

    • pkg delete 包名: 卸载指定的软件包。

update-alternatives

update-alternatives 是一个用于管理系统中不同版本的软件的工具。它可以创建、删除和查询符号链接,以便在多个可用版本之间切换。

查看当前设置

  • update-alternatives --display java: 查看当前java服务的设置。

添加新选项

  • update-alternatives --install /usr/bin/java java /usr/local/jdk-11.0.2/bin/java 3:

    • /usr/bin/java: 注册地址,软链接的位置。
    • java: 服务名。
    • /usr/local/jdk-11.0.2/bin/java: 实际可执行文件路径。
    • 3: 优先级。

切换选项

  • update-alternatives --config java: 手动选择java服务的版本。

示例命令

Debian系APT命令示例

  • 搜索软件包:

    apt search 包名
    
  • 安装软件包:

    apt install 包名
    
  • 升级所有已安装的软件包:

    apt upgrade
    
  • 卸载软件包:

    apt remove 包名
    

FreeBSD系PKG命令示例

  • 搜索软件包:

    pkg search 包名
    
  • 安装软件包:

    pkg install 包名
    
  • 升级软件包:

    pkg upgrade 包名
    
  • 卸载软件包:

    pkg delete 包名
    

update-alternatives命令示例

  • 查看当前java设置:

    update-alternatives --display java
    
  • 添加新java选项:

    update-alternatives --install /usr/bin/java java /usr/local/jdk-11.0.2/bin/java 3
    
  • 切换java版本:

    update-alternatives --config java
    

标签:11,包名,RPM,Linux,YUM,yum,软件包,软件,安装
From: https://www.cnblogs.com/lmydytd/p/18429700

相关文章

  • 在虚拟机Linux上运行redis,同时使用Another RedisDesktop Manager图形化界面工具连接
    VMwareWorkstationPro虚拟机启动Centos7MobaXterm连接虚拟机输入个人密码Redis启动进入Redis文件目录cd/usr/local/src/redis-6.2.6Redis自启动systemctlenableredissystemctlstartredis查看Redis进程ps-ef|grepredis进入Redis操作redis-cli-h......
  • Marvelous Designer12 激活版下载及安装教程 (3D服装设计软件)
    下载地址: 破姐客栈,点击搜索Matlab即可免费下载解压文件,解压后点击执行选择安装路径点击【Install】安装中,大概需要2-5分钟,耐心等待…安装完成,取消下面勾选,点击【Finish】安装完成先不要启动,把补丁里面的文件覆盖程序安装位置即可完成激活。点击桌面图标启动运行......
  • Linux系统CentOS下挂载磁盘
    1.挂载磁盘步骤总结如下1.对磁盘进行分区2.对磁盘进行格式化3.将磁盘挂载到对应目录4.设置开机自动挂载磁盘2.对磁盘进行分区2.1查看系统设备信息lsblk指令显示所有块设备信息:显示系统中所有的块设备信息,包括磁盘和分区lsblk2.2查看未挂载的磁盘fdisk-l2.3......
  • Linux 安装 Kibana & Es
    Kibana简介Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。El......
  • 详解Linux中cat命令
    在Linux命令的世界中,cat命令就像是一位多才多艺的艺术家,它能够将文本文件的美妙旋律编织在一起,或者单独演奏它们的每一个音符。下面,让我们以一种充满情感的方式,用Markdown格式来探索cat命令的多种用途。1. 查看文件的诗篇当你想要阅读一个文件,就像阅读一首诗一样,你可以使用......
  • linux如何查看当前的目录所在位置
    在Linux系统中,查看当前目录所在位置的常用命令是pwd,它代表"printworkingdirectory"(打印工作目录)。当你在终端中输入pwd并按下回车键时,它会显示当前所在的完整路径。打开终端,然后输入以下命令:pwd系统会返回你当前所在的目录路径。例如,如果你在/home/username/Documents目录......
  • 软件供应链安全管理实践之中国联通
    软件供应链安全管理是保护软件开发和交付过程中所有组件的安全性和完整性的重要环节,软件供应链安全国家标准及政策的发布,为企业软件供应链安全管理提供了依据。本文摘选自软件供应链安全推进工作组指导、苏州棱镜七彩信息科技有限公司主笔的《2023软件供应链安全研究报告》中第八章......
  • 开发一个当下火热的软件:AI无人直播工具!
    AI无人直播工具作为直播行业的创新力作,正逐渐受到广大用户和企业的青睐,这款工具不仅打破了传统直播对于人力和时间的依赖,更以其智能化、高效化的特点,为直播行业带来了全新的变革。下面,我将为大家分享六段与AI无人直播工具相关的源代码片段,让我们一同探索这款神奇工具的技术奥......
  • 敢与Everything媲美的软件,已完美授权!
    说到电脑文件搜索软件,很多人第一个人想到的是Everything,这款秒搜软件可以快速查找出电脑里的文件或者文件夹,非常好用实用。不过文件搜索软件我用得最多的不是Everyting,而是今天推荐的这款文件搜索利器——Listary!软件:Listary6.3 语言:简体中文大小:13安装环境:Win7及以上操作......
  • CNAS软件测试实验室能力验证全流程介绍
    能力验证是多个实验室间比对来确定实验室检测能力的活动,是维持实验室较高技术水平的一种确认和验证活动。CNAS软件检测实验室初次认可和扩大认可范围时,申请认可的每个子领域应至少参加过一次相关领域的能力验证且获得满意结果。通过认定认可后,只要存在可获得的能力验证,不同类目......