11、Linux软件安装及使用

news/2024/11/15 22:47:07/文章来源:https://www.cnblogs.com/lmydytd/p/18429700

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
    

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux软件安装及使用

Windows软件安装流程安装检查: 检查系统是否满足软件的安装要求,包括操作系统版本、硬盘空间、内存要求等。 释放文件: 解压安装包中的文件到临时目录。 复制可执行文件: 将主要的可执行文件复制到指定的安装路径。 安装DLL动态链接库/安装服务: 根据需要安装动态链接库文件(…

降本 60%!小熊油耗使用阿里云 SAE 更加稳定可靠

在技术不断进步与市场竞争日益激烈的背景下,小熊油耗坚定地相信,通过持续优化和创新,定能在未来实现更大的发展与突破。感谢阿里云 SAE 为小熊油耗的成长与发展提供了强有力的支持。作者:赵世振、黛忻 把业务迁移到阿里云 SAE 之后,我们的产品更加稳定,用户体验更流畅,提…

吴辰曦的自我介绍

大家好!我是吴辰曦。我认为可以用乐观,活泼,慢热来形容我。 我性格乐观,总是能看到生活中的美好,相信无论遇到什么困难都能找到解决办法。我也很活泼,喜欢和朋友们一起玩耍、交流。不过呢,我还有点慢热,刚开始可能会比较安静,但一旦熟悉起来,就会展现出最真实的自己 …

Linux系统CentOS下挂载磁盘

1. 挂载磁盘步骤总结如下 1. 对磁盘进行分区 2. 对磁盘进行格式化 3. 将磁盘挂载到对应目录 4. 设置开机自动挂载磁盘 2. 对磁盘进行分区 2.1 查看系统设备信息 lsblk指令显示所有块设备信息:显示系统中所有的块设备信息,包括磁盘和分区 lsblk2.2 查看未挂载的磁盘 fdisk -l2…

【每周例题】蓝桥杯 C++ 生物芯片

生物芯片 题目 生物芯片题目分析 1.下面是亮灯规律,剩下的以此类推:我们可以看到,不亮灯的都是n的平方 2.所以亮灯的数目=该区间内所有灯的数量-不亮灯的数目(简而言之,所有不亮灯的号码开方后都是整数) 代码#include <iostream> #include <cmath> using…

CSDN文章导出md并迁移至博客园

一、获取所有文章地址 1.进csdn首页,点击自己的头像 2.在个人主页界面,按F12打开控制台,并找到network,找到get-business开头的请求,右键copy他的url3.选择console,输入一下代码,其中fetch里面的url是你刚才复制的地址,并把里面的size改为100(这个是返回的文章内容数,…

C#WinForm窗口或UserControl调用WPF的UserControl卡死!

辛辛苦苦的把WPF的界面弄好,但在VS中的的工具栏中把WPF的UserControl拖入到WinForm中时,VS会卡10分钟左右,然后就卡死。 最终找到原因:在定义的类整错了图中红色区域应该是Vm_Tjlx。而不是vm_Tjlx 查找原因的方法:1、在WinForm中可以用代码调用WPF。2、写一段代码就调试一…

【触想智能】工业显示器在智慧城市中的应用市场分析

随着智能技术的快速发展和智慧城市的不断兴起,工业显示器作为智慧城市基础设施的重要组成部分,正逐渐成为市场热点。触想工业显示器TPC-M200系列工业显示器不仅在监控、交通、能源等领域有着广泛应用,还在提升智慧城市管理和运营效率方面发挥着重要作用。下面触想智能小编将…

通讯异常——网卡高级设置建议

1.打开网卡高级设置 右击任务栏中网络图标出现如下菜单选项点击“打开‘网络和Internet’设置”,出现如下类似界面 鼠标点击“更改适配器选项”,出现如下界面: 右击堆栈设备所链接网络图标 鼠标点击“属性”选项,出现如下界面: 单击“配置”按钮,出现如下界面: 选择…

开始——环境配置

前置:安装>=9.3的nodejs 在系统用户文件夹找到.npmrc文件并添加以下内容:npm配置文件内容prefix=c:\nodejs\node_global#nodejs的global目录 cache=c:\nodejs\node_cache#nodejs的缓存 msvs_version=2019#设置electron的C++编译器为visual studio 2019 home=https://www.npm…

通过jlink连接树莓派4b搭建gdb调试环境

参考资料 jlink使用的是博光微的jlink v9树莓派使用的是4bjlink与树莓派链接按照表中的内容进行链接,注意链接过程要小心仔细,否则后续排查起来十分麻烦 下载openocd 由于我是在linux环境下,所以省去了jlink的驱动安装,直接先下载openocd sudo apt install openocd注意不要…