Linux下软件安装的命令

2023-11-20

源码安装

以源代码安装软件,每次都需要配置操作系统、配置编译参数、实际编译,最后还要依据个人喜好的方式来安装软件。这个过程很麻烦很累人。

RPM安装软件的默认路径:

注意:

  • /etc 配置文件放置目录
  • /usr/bin 一些可执行文件
  • /usr/lib 一些程序使用的动态链接库
  • /usr/share/doc 一些基本的软件使用手册与说明文件
  • /usr/share/man 一些man page档案

常用的 RPM 软件包命令

安装软件的命令格式 rpm -ivh filename.rpm
升级软件的命令格式 rpm -Uvh filename.rpm
卸载软件的命令格式 rpm -e filename.rpm
查询软件描述信息的命令格式 rpm -qpi filename.rpm
列出软件文件信息的命令格式 rpm -qpl filename.rpm
查询文件属于哪个 RPM 的命令格式 rpm -qf filename

参数说明:

  • -i:install的意思,安装
  • -v:查看更详细的安装信息画面
  • -h:以安装信息栏显示安装进度
软件安装

如你需要安装一个jdk,首先要到网上下载一个jdk的rpm包,如jdk-8u171-linux-x64.rpm。最简单的安装命令如下:

rpm -i jdk-8u171-linux-x64.rpm

不过,这样的参数其实无法显示安装的进度,所以通常我们执行的命令是这样:

rpm -ivh package-name

卸载软件

使用rpm的卸载过程一定要由最上层往下卸载,以rp-pppoe为例,这个软件主要是依据ppp这个软件来安装的,所以当你要卸载ppp的时候,就必须先卸载rp-pppoe才行!

删除的命令非常简单,通过-e参数就可以完成。不过,很常发生软件属性依赖导致无法删除某些软件的问题。

rpm -e gcc

注意:

如果删除不想检查依赖关系,加 --nodeps

YUM

YUM可以看作是CS架构的软件,YUM的存在很好的解决了RPM的属性依赖问题。

YUM通过依赖rpm软件包管理器, 实现了rpm软件包管理器在功能上的扩展, 因此YUM是不能脱离rpm而独立运行的。

注意:

YUM是一个在线软件管理工具,所以使用YUM进行的操作大都是需要在联网的条件下才能正常使用。

YUM的配置文件
容器说明

虽然yum是你在联网后就能直接使用,不过,由于你系统的站点镜像没选择好,会导致连接速度非常慢!所以,这时候就需要我们去手动修改yum的设置文档了。

容器查询

首先,可以先查询一下目录yum server所使用的容器有哪些。

使用命令:yum repolist all,查询结果如下:

如上图,只有当最右边的status为enabled该容器才算激活,

/etc/yum.repos.d/里面会有多个配置文件(文件名以.repo结尾),yum会从里面逐个查找,所以里面的容器名称不能有重复。

配置文件修改

打开配置文件:vi /etc/yum.repos.d/CenOS-Base.repo,内容如下

配置文件的说明:

[base]:代表容器的名字。中括号一定要存在,里面的名称可以随意起,但不能有两个相同的容器名称,否则yum会不知道去哪里找容器相关软件列表文件。

name:只是说明一下这个容器的意义而已,重要性不高。

mirrorlist:列出这个容器可以使用的镜像站点,如果不想使用可以批注掉这一行。

baseurl:这个最重要,因为后面接的就是容器的实际网址。mirrorlist是由yum程序自行去找镜像站点, baseurl则是指定固定的一个容器网址。

enable=1:启动这个容器,默认值也为1。关闭这个容器可以设置enable=0。

gpgcheck=1:指定是否需要查阅RPM文件内的数字证书。

gpgkey:数字证书的公钥文件所在位置,使用默认值即可。

注意:

1)yum会自动识别/etc/yum.repos.d/目录以.repo结尾的文件。

2)当我们修改了配置文件的网址却没有修改容器名称,可以会造成本机的列表与yum服务器的列表不同步,这时就需要手动来清除容器的数据了:

语法:yum clean [packages|headers|all]

参数:

packages:将已下载的软件文件删除

headers:将下载的软件文件头删除

all:将所有容器数据都删除

例:删除已下载过的所有容器相关数据(含软件本身与列表)

yum clean all

示例1

配置阿里yum源

1:安装wget
    yum install -y wget  (如果已经安装了则省略)
2:备份  /etc/yum.repos.d/CentOS-Base.repo文件
    cd /etc/yum.repos.d/
    mv CentOS-Base.repo CentOS-Base.repo.back
3:下载阿里云的Centos-7.repo文件
     wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
4:重新加载yum
    yum clean all
    yum makecache
5:检查配置的源是否是阿里的
   cat /etc/yum.repos.d/CentOS-Base.repo

YUM使用手册

小技巧: 使用参数-y,当遇到需要等待用户输入时,这个选项会提供yes的响应,如上面的例子可以写成:

yum  install -y  emacs 

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

Linux下软件安装的命令 的相关文章

  • numpy 未定义符号:PyFPE_jbuf

    我正在尝试使用一百万首歌曲数据集 为此我必须安装 python 表 numpy cython hdf5 numexpr 等 昨天我设法安装了我需要的所有内容 在使用 hdf5 遇到一些麻烦之后 我下载了预编译的二进制包并将它们保存在我的 b
  • 怎样才能使 Windows 成为一个开箱即用的 POSIX 兼容操作系统?

    这个问题的动机是我的一个牵强的梦想 即 nix 平台上可用的许多优秀软件可以轻松移植到 Windows 微软最近对开源和开放性采取了不同的方法 所以我真的很想知道如果微软有这样的倾向 这样的事情会有多可行 我很好奇的一些更具体的事情是 是否
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • 为 Qt 应用程序创建 Linux 安装

    我刚刚用 Qt Creator 制作了一个很棒的程序 我对自己很满意 如何将其从台式机移至笔记本电脑 那么 最好的方法是安装程序 对吗 对于 Ubuntu 这是一个 Debian 软件包 对吗 我怎么做 有人这样做过吗 他们可以分享 QT
  • 如何在Python中独立于语言安装(linux)获取用户桌面路径

    我找到了 如何找到用户桌面的路径 的几个问题和答案 但在我看来它们都已失效 至少我找到的那些 原因是 如果用户安装的 Linux 不是英语 他或她的桌面很可能位于除 Desktop 例如 对于瑞典语 我相信它是在 Skrivbord 谁知道
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • 无需 cron 在后台发送邮件

    我想知道是否有一种方法可以运行 PHP 循环 以便在后台向订阅者发送几百封电子邮件 我的目标是格式化新闻通讯 单击发送 然后关闭浏览器或更改页面 当然 发送电子邮件的实际过程将在后台运行 不会因浏览器关闭而中断 我知道这可以通过 cron
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 在 Linux 中禁用历史记录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要在 Linux 环境中禁用历史记录 我执行了以下命令 export HISTFILESIZE 0 export HISTSIZE 0 u
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs

随机推荐

  • 软件测试 app自动化02 Appium常用的元素定位工具 元素的属性 元素定位方法

    文章目录 1 Appium常用的元素定位工具 1 1 uiautomatorviewer 1 2 Appium Inspector 1 3 Weditor 2 元素的属性 3 元素定位方法 小结 1 Appium常用的元素定位工具 1 1
  • 数据库学习笔记(8)——mysql中的函数和存储过程

    1 MySQL中的函数 1 数据库主要做存储和查询操作 逻辑操作一般不在数据库中进行操作 2 MySQL中的函数主要是自定义函数 其中自定义函数格式如下 修改语句结束符 delimiter create function 函数名 参数名 数
  • 操作系统常见面试题

    1 什么是进程 Process 和线程 Thread 有何区别 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动 进程是系统进行资源分配和调度的一个独立单位 线程是进程的一个实体 是CPU调度和分派的基本单位 它是比进程更小的能
  • java-线程锁

    实现锁 1 同步代码块 2 同步方法 在方法的头部加上synchronized 3 Lock 功能比synchronized更加的强大 但是加锁的时一定不要忘记解锁unlock 在使用lock锁时 想要实现睡眠唤醒功能 就要使用condit
  • 决策报表---动态参数实现多级下拉折叠菜单

    1 描述 在报表开发中 我们会遇到报表需要对行标题实现展开收起的折叠菜单的效果 这种效果一般在分析预览或者填报中应用下拉树控件来实现 但是在分页预览或者决策报表如何实现呢 这里我们使用动态参数的方式 预期效果 1 在分页预览和决策报表中能适
  • 操作系统中的线程&进程和同步&异步和并发&并行

    操作系统中的线程 进程和同步 异步和并发 并行 一 进程和线程 1 1 进程 1 2 线程 1 3 实现多任务的方法 1 3 1 使用多进程实现多任务 1 3 2 使用多线程 单个进程包含多个线程 实现多任务 1 3 3 使用多进程 多进程
  • vue+element中如何设置单个el-date-picker开始时间和结束时间关联

    功能 选了开始时间 则结束时间只能选择开始时间之后的 选了结束时间 则开始时间只能选择结束时间之前的 重点是picker options属性 图示 代码展示 body 内部
  • JavaScript设计模式-02-单例模式

    Javascript 设计模式 02 单例模式 简介 单例就是保证一个类只有一个实例 实现的方法一般是先判断实例是否存在 如果存在直接返回 如果不存在就创建了再返回 确保了一个类只有一个实例对象 在JavaScript里 单例作为一个命名空
  • AIGC(AI Generated Content,人工智能生成内容)

    AIGC AI Generated Content 人工智能生成内容 什么是AIGC AIGC Artificial Intelligence Generated Content AI Generated Content 中文译为人工智能生
  • 读《effective modern c++》笔记总结

    文章目录 一 类型推导与auto 模板类型推导 ParamType是一个指针或引用 但不是通用引用 ParamType是一个通用引用 ParamType即不是指针也不是引用 数组实参 函数实参 auto类型推导 二 decltype的理解
  • make menuconfig报错:Build dependency: Please install Git (git-core) >= 1.6.5

    版本号为chaos calmer 15 05 1 注意 在执行make menuconfig的时候 会报一个错误 如下 Build dependency Please install Git git core gt 1 6 5 这是open
  • 节流与防抖

    1 我们先了解为什么要节流和防抖 我们给一个inpu输入框绑定一个oninput事件 此时我们输入 前端开发 四个字 我们 观察以下后台打印
  • 树莓派视觉小车 -- 小球追踪(颜色追踪)(OpenCV色彩空间HSV)

    目录 效果展示 基础理论 HSV 为什么用HSV空间而不是RGB空间 HSV 1 Hue 色相 2 Value 明度 3 Saturation 饱和度 一 初始化 滑动条初始化 1 创建回调函数 2 窗口设置 名称 3 滑动条设置 代码 二
  • Linux环境安装开发grafana插件(一)试水

    继续我们探索grafana结合Skywalking 为了更加灵活的应用图表 尝试开发grafana的panel插件 但试水并不顺利 所以把第一步目标缩小到安装一个自定义插件 参考了不少文章 终于成功 但各类参考要么比较碎片化 要么有些地方过
  • Typescript学习笔记

    Typescript学习笔记 什么是Typescript TypeScript是一种由微软开发的开源 跨平台的编程语言 它是JavaScript的超集 最终会被编译为JavaScript代码 TypeScript适合用来编写基于node的大
  • def __int__(self):的作用

    def int self 名称 初始化方法 构造方法 构造函数 作用 当我们创建好一个实例对象之后 会自动调用这个方法 来初始化这个对象 实例化后传入的参数会到此方法中来 构造方法 self name name此种语句将参数赋给实例 此类中
  • vue3+ts+echars实现中国为中心中文版世界地图(包含配置文件)

  • Python ERROR: Could not install packages due to an OSError:XXX解决方法

    Python ERROR Could not install packages due to an OSError XXX解决方法 文章目录 Python ERROR Could not install packages due to an
  • 滑动窗口专题(字节面试题)

    关键字 连续数组 字串 1 和为s的连续正整数序列 剑指offer57 II 输入一个正整数 target 输出所有和为 target 的连续正整数序列 至少含有两个数 序列内的数字由小到大排列 不同序列按照首个数字从小到大排列 示例 1
  • Linux下软件安装的命令

    源码安装 以源代码安装软件 每次都需要配置操作系统 配置编译参数 实际编译 最后还要依据个人喜好的方式来安装软件 这个过程很麻烦很累人 RPM安装软件的默认路径 注意 etc 配置文件放置目录 usr bin 一些可执行文件 usr lib