如何在Linux中安装软件

文章目录

  • 一、Linux应用程序基础
    • 1.Linux软件安装包分类
    • 2.应用程序和系统命令的关系
    • 3.常见的软件包的封装类型
  • 二、安装软件的方式
    • 1.RPM包管理工具
    • 2.yum安装
    • 3.编译


一、Linux应用程序基础

1.Linux软件安装包分类

Linux源码包:
实际上,源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。
Linux二进制包:
二进制包,也就是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快,且安装过程报错几率大大减小。

2.应用程序和系统命令的关系

因素区别
位置命令的存储位置和应用程序储存的位置不一样
用途命令主要用于处理系统的基本操作;应用程序可以完成独立的任务,如浏览器访问网页
使用环境命令用于字符界面 ;应用程序用于字符和桌面
格式命令有固定的格式和命令参数;应用程序无固定格式

3.常见的软件包的封装类型

文件类型保存目录
RPM软件包扩展名为“.rpm”
DEB软件包扩展名为“.deb”
源代码软件包一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码

二、安装软件的方式

1.RPM包管理工具

这个工具由Red Hat公司提出,被众多Linux发行版所采用,该工具会建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,自动分析软件包依赖关系。
在这里插入图片描述
安装软件包时,会自动分析软件包的依赖关系,但不会自动解决,需要人工手动解决,比较麻烦。一般不建议采用此类方法安装软件,通常我们是用该工具去查询系统中安装的软件和软件状态。

RPM软件命令

选项效果
rpm -qa(all)显示当前系统中以 RPM 方式安装的所有软件列表
rpm -q 软件名查询指定软件是否已安装
rpm -qi 软件名查看指定软件包的名称、版本、许可协议、用途描述等详细信息
rpm -ql(list) 软件名显示指定的软件包在当前系统中安装的所有目录、文件列表
rpm -qc (configfiles) 软件名列出已安装的指定软件的配置文

在这里插入图片描述
RPM安装命令

选项效果
iinstall 安装
v显示过程
h人性化显示 ##########进度条
e+软件名卸载软件
- -nodeps在安装或升级、卸载一个软件包时,不检查与其他包的依赖关系
- -force强制安装某个软件包

维护RPM数据库
1.重建RPM数据库
当RPM 数据库发生损坏,可通过重建RPM 数据库修复
rpm --rebuild 或者 rpm --initdb

2.导入验证公钥
在没有导入用于数字签名验证的公钥之前,安装光盘中的一部分RPM 包时会报错。需要向RPM数据库中导入位于光盘根目录下的公钥文件。

2.yum安装

yum安装的优缺点:
优点:1.简单
2.自动解决依赖关系
缺点:1.需要有服务端
2.yum只会将最常用的功能编译进去,可能会导致功能不全
3.版本过旧,更新速度慢

rpm是单机安装,而yum是需要依靠网络,想要安装需要保证你的网络要通畅才行。
1.如何去寻找yum安装包?
yum安装,数据包不在本地,网络上有yum服务器,我们要让客户端知道怎么去服务端。
通过书写客户端配置文件,来让客户端去往服务端。
客户端配置文件要求:
1.必须在 /etc/yum.repos.d/这个目录下
2.配置文件必须以*.repo结尾
配置文件内容:

配置文件的内容(默写)
[base] #仓库的描述(可以用字符自定义)
name= #仓库的名字,不要重复,可以自定义(字母)
baseurl= 网址 #指明服务器的位置,去服务器端下载软件包(百度查找地址)
enabled=1 #是否开启仓库 为0即不开启 默认选项为1 (可以不写)
gpgcheck=1 #开启包的验证 如果是0代表关闭包的验证(一般不启用包的验证)
gpgkey= #密钥的位置
在这里插入图片描述
在这里插入图片描述

gpgcheck的作用:检验包的安全性,完整性
防止别有用心的人再包中加入病毒,密钥对比,如果和红帽的密钥不一致就会不安装。
服务器端:
1.提供安装包
2.元信息(即类似目录 理解为数据库:安装包的路径、安装包的依赖关系)
安装过程简图
在这里插入图片描述
单机yum仓库
在没有网络的情况下使用,自己既是服务端,又是客户端。将带有软件安装包的光驱挂载到一个文件夹。
客户端:写配置文件
本地yum仓库过程
mount /dev/sr0 /mnt #挂载提供安装包和原信息
cd /etc/yum.repos.d #切换到指定目录,写配置文件
mkdir bak #建立子文件夹
mv *.repo bak #移走网络源
vim local.repo #建立本地配置文件

[local]
name=local
baseurl=file:///mnt
gpgcheck =0
wq

yum clean all #清除以前的缓存
yum makecache #下载原信息

yum install tree-y#安装tree
yum remove tree -y #卸载tree
yum install epel-release.noarch -y#安装额外源

yum命令

命令效果
yum list显示所有安装包
yum install +软件包安装软件
yum remove 软件包卸载软件 (单独卸载这个包,不会卸载依赖关系的软件包)
yum provides +关键字找到安装包

在这里插入图片描述

3.编译

编译安装的优缺点
优点:1.功能自定义
2.版本可以安装最新的版本
缺点:安装复杂

编译安装前准备:
1.先安装编译软件 编译软件也有依赖关系需要手动解决
2.下载安装包
3.解压安装包

3步安装
./configure 脚本文件,源码包中自带
功能:
1.检测安装环境
2.可以选择安装软件的功能并生成一个文件make.file,按照这个文件的配置进行编译安装
3.指定安装路径 --prefix =路径 路径可以不存在,会自动建立
默认在/usr/local/nginx
make #将源代码编译成二进制可执行的文件 在objs下
make install #将软件安装进系统指定路径

示例:编译安装ngnix网站软件
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl pcre apr*#安装依赖环境
mkdir /bianyi
cd /bianyi
wget http://nginx.org/download/nginx-1.18.0.tar.gz#下载源码包
tar xf nginx-1.18.0.tar.gz#解压
cd nginx-1.18.0
./configure --prefix=/apps/nginx检测环境,指定安装目录
make -j2#两个核心编译
make install#将软件复制到前面规定的路径
ln -s /apps/nginx/sbin/nginx /usr/local/sbin/#软链接,目的是可以补全。
测试:关闭防火墙,查询虚拟机,用IP地址访问
在这里插入图片描述
出现该界面即可。

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

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

相关文章

海纳斯删除广告位

找到文件 vim /var/www/html/home.php 删除代码段 <div class"adleft" id"adleftContainer"><button onclick"closeAd()">关闭</button><a href"https://www.ecoo.top/ad.html" target"_blank">&l…

bugku-misc 啊哒

拿到题目得到一张图片 尝试查看属性看到照相机型号 应该是加密字符&#xff0c;用010打开图片查看源码 文件结尾看到50 4B&#xff0c;是压缩包形式并且看到flag.txt 猜测是文件包含 kali用foremost尝试分离图片 得到zip文件&#xff0c;打开显示需要密码 想到一开始图片属…

GESP Python编程五级认证真题 2024年3月

Python 五级 2024 年 03 月 1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 下面流程图在yr输入2024时&#xff0c;可以判定yr代表闰年&#xff0c;并输出 2月是29天 &#xff0c;则图中菱形框中应该填入&#xff08; &#xff09;。 A. (yr % 400 0…

LDR6328助力Type-C普及,便捷充电,绿色生活更精彩

随着科技的进步和全球统一接口的需求&#xff0c;Type-C接口正日益受到青睐。越来越多的设备正选择采纳这一先进的接口设计&#xff0c;它的普及无疑在改善着我们的日常生活。 在过往&#xff0c;许多小功率设备如小风扇、蓝牙音箱、桌面台灯以及家用加湿器等&#xff0c;都普遍…

在ChatGPT中,能用DALL·E 3编辑图片啦!

4月3日&#xff0c;OpenAI开始向部分用户&#xff0c;提供在ChatGPT中的DALLE 3图片编辑功能。 DALLE 3是OpenAI在2023年9月20日发布的一款文生图模型&#xff0c;其生成的图片效果可以与Midjourney、leonardo、ideogram等顶级产品媲美&#xff0c;随后被融合到ChatGPT中增强其…

20.2k stars项目搭建私人网盘界面美功能全

Nextcloud是一套用于创建网络硬盘的客户端&#xff0d;服务器软件。其功能与Dropbox相近&#xff0c;但Nextcloud是自由及开放源代码软件&#xff0c;每个人都可以在私人服务器上安装并执行它。 GitHub数据 20.2k stars561 watching3.2k forks 开源地址:https://github.com/ne…

博弈论(Nim+sg)

Nim游戏 给定 n 堆石子&#xff0c;两位玩家轮流操作&#xff0c;每次操作可以从任意一堆石子中拿走任意数量的石子&#xff08;可以拿完&#xff0c;但不能不拿&#xff09;&#xff0c;最后无法进行操作的人视为失败。 问如果两人都采用最优策略&#xff0c;先手是否必胜。…

Android Studio学习15——多页面情况下再看Activity生命周期

按返回键退出APP时&#xff1a; 走正常页面的退出流程&#xff1a;onPause–>onStop–>onDestroy(会Destroy,因为它从任务栈中退出了) 再点击图标回来时&#xff1a; 走正常页面的创建流程&#xff1a;onCreate–>onStart–>onResume 按Home键退出App时&#xff1a…

测试基础|为啥大多数功能测试会觉得测试平台不好用?自动化测试的几点思考

一、接口自动化到底要验证什么 个人觉得做什么事情前&#xff0c;应该想下做的动机和想要达成的目的&#xff0c;这样会减少很多不必要的弯路。 1. 自动化的原因 测试界普遍认为应该加自动化用于提高测试效率和保障&#xff1b; 测试kpi任务&#xff1b; 应对需要频繁执行…

0基础如何进入IT行业?

0基础如何进入IT行业&#xff1f; 简介&#xff1a;对于没有任何相关背景知识的人来说&#xff0c;如何才能成功进入IT行业&#xff1f;是否有一些特定的方法或技巧可以帮助他们实现这一目标&#xff1f; IT 行业可能是当今门槛最低的行业之一&#xff0c;想要进入 IT 行业&a…

【机器学习·浙江大学】机器学习概述、支持向量机SVM(线性模型)

机器学习概述 机器学习 特征提取(feature) 根据提取的特征构造算法&#xff0c;实现特定的任务⭐&#xff08;这门课程的重点&#xff1a;假设所有的特征已经存在且有效&#xff0c;如何根据这些特征来构造学习算法&#xff09; 如下图所示&#xff0c;机器学习主要就是来进行…

FreeRTOSFreeRTOS列表和列表项

FreeRTOS列表和列表项 今天继续跟着正点原子学习FreeRTOS列表和列表项的内容。列表和列表项这个知识点用到了C语言链表的知识点。所以必须对C语言中的链表这个数据结构才能更好的理解这部分内容。TIPS&#xff1a;正点原子这节课内容讲的特别好&#xff0c;强烈推荐&#xff1…

基于SSM的基于个人需求和地域特色的外卖推荐系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的基于个人需求和地域特色的外卖推荐系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

关于 Python 的 import,你了解多少?

多线程和多进程是 Python 中两种实现多任务的不同策略&#xff0c;二者都可以在特定的场景下在一定程度上提高程序的运行速度、性能以及吞吐&#xff0c;但二者的运行机制却有很大的差别。 在 Python 中&#xff0c;多线程以_并发&#xff08;concurrent&#xff09;的方式运行…

Chapter 1 Basic Concepts of Communication and Communication Systems

1.1 The Concept of Communication communication【通信】:It is the process of using signals to transmit messages containing information in space. To put it simply, communication is the spatial transmission of information【信息的空间传递】Information【信息】…

C语言数组:数据的集合艺术(续)

前言 在上一篇文章中&#xff0c;我们深入探讨了C语言数组的基本概念、操作以及多维数组的应用。今天&#xff0c;我们将继续探索数组的更多高级特性&#xff0c;包括动态内存分配、指针与数组的关系以及数组在实际编程中的应用案例。 一、动态内存分配与数组 在C语言中&…

Unity开发一个FPS游戏之三

在前面的两篇博客中&#xff0c;我已实现了一个FPS游戏的大部分功能&#xff0c;包括了第一人称的主角运动控制&#xff0c;武器射击以及敌人的智能行为。这里我将继续完善这个游戏&#xff0c;包括以下几个方面&#xff1a; 增加一个真实的游戏场景&#xff0c;模拟一个废弃的…

数据加密的两种方案

说明&#xff1a;本文介绍对项目中的数据加密的两种方案&#xff1b; 场景 源自真实的项目需求&#xff0c;需要我们对系统中的敏感数据&#xff08;如手机号、证件号等&#xff09;进行加密处理&#xff0c;即存入到数据库中的是加密后的密文数据。加密本身是不难的&#xf…

Spring Security——11,自定义权限校验方法

自定义权限校验方法 一键三连有没有捏~~ 我们也可以定义自己的权限校验方法&#xff0c;在PreAuthorize注解中使用我们的方法。 自定义一个权限检验方法&#xff1a; 在SPEL表达式中使用 ex相当于获取容器中bean的名字未ex的对象。然后再调用这个对象的 hasAuthority方法&am…

软考高级架构师:嵌入式系统的内核架构

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…