快速了解Linux中如何安装及管理程序
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言一、pandas是什么?二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('
文章目录
前言
在Windows操作系统下,下载软件对于我们来说是很简单的操作,甚至有的还有自动运行的。但是Linux不同,因Linux版本过多,导致软件的安装方法五花八门。在此我把Linux的软件安装方式进行汇总和整理。
一、Linux应用程序基础
1.Linux应用程序与系统命令的关系
在Linux系统中,一直以来命令和应用程序并没有明确的区别,从长期使用习惯来看,可以通过以下的描述来对两者进行区别。
- 文件位置:系统命令一般在/bin和/sbin目录中,或为Shell内部指令,而应用程序则通常在/usr/bin 、/usr/sbin和/usr/local/bin,/usr/local/sbin目录中。
- 主要用途:系统命令是完成系统的基本管理工作,例如IP配置工具,而应用程序则是完成相对独立的其他辅助任务,例如网页浏览器。
- 试用环境:系统命令一般只在字符操作界面运行,应用程序则是根据实际需要,有些程序可在图形界面中运行。
- 运行格式:系统命令一般包括命令字、命令选项和命令参数,应用程序却没有固定的执行格式。
2.典型应用程序的目录结构
安装完一个软件后,可能会向系统中复制大量的数据文件,并进行相关设置。在Linux系统中,典型的应用程序通常由以下几部分组成:
文件类型 | 保存目录 |
---|---|
普通可执行程序文件 | 一般保存在/usr/bin目录下,普通用户即可执行 |
服务器程序、管理程序文件 | 一般保存在/usr/sbin目录中,只有管理员能执行 |
应用程序配置文件 | 一般保存在/etc目录中,配置文件较多时会建立相应的子目录 |
日志文件 | 一般保存在/var/log目录中 |
应用程序的参考文档等数据 | 一般保存在/usr/share/doc/目录中 |
执行文件及配置文件的man手册页 | 一般保存在/usr/share/man/目录中 |
3.常见的软件包封装类型
对于各种应用程序的软件包,在封装时可以采用各种不同的类型,不同类型的软件包其安装方法也各不相同。常见的软件包封装类型如下:
文件类型 | 保存目录 |
---|---|
RPM软件包 | 扩展名为".rpm" |
DEB软件包 | 扩展名为".deb" |
源代码软件包 | 一般为".tar.gz " 、".tar.bz2"等格式的压缩包,包含程序的原始代码 |
附带安装程序的软件包 | 扩展名不一,以TarBall格式的居多 |
二、RPM软件包管理工具
RPM软件包管理机制最早是由Red Hat 公司提出的,后来随着版本的升级逐渐融入了更多的优秀特性,成为众多Linux发行版中公认的软件包管理标准。
一般命名格式如下图所示:
1.RPM命令的格式
在Linux系统中,rpm命令是实现RPM软件包管理的主要工具,能够实现几乎所有对RPM软件包的管理功能。
- 执行“man rpm”命令可以获得关于rpm命令的详细帮助信息,如下:
[root@localhost ~]$man rpm
2.rpm命令功能
从rpm命令的手册页信息中可以看出,rpm命令具有相当复杂的命令格式,结合不同的命令选项及子选项主要可以实现以下三类功能:
- 查询、验证RPM软件包的相关信息
- 安装、升级、卸载RPM软件包
- 维护RPM数据库信息等综合管理操作
三、查询RPM软件包信息
1.查询已安装的RPM软件信息
不带选项的“-q”选项可用于查询已知名称的软件包是否已经安装
选项 | 说明 |
---|---|
rpm -qa | 显示当前系统中以RPM方式安装的所有软件列表 |
rpm -q | 查询指定软件是否已安装 |
rpm -qi | 显示已安装软件的详细信息 |
rpm -ql | 显示已安装的指定软件的文件列表 |
rpm -qc | 列出已安装的指定软件的配置文件 |
rpm -qd | 列出已安装的指定软件包文档所在位置 |
rpm -qR | 列出已安装的指定软件的依赖的软件包及文件 |
rpm -qf(文件或目录) | 查询已安装的指定软件属于哪个安装包 |
案例
①查询是否已安装elinks 和lynx 软件包,如下:
[root@localhost ~]$rpm -q elinks lynx
未安装软件包 elinks
未安装软件包 lynx
②查询系统中是否安装了名称中含“samba”的软件包,查询时不区分大小写,如下:
[root@localhost ~]$rpm -qa | grep -i samba
samba-client-libs-4.6.2-8.el7.x86_64
samba-common-4.6.2-8.el7.noarch
samba-common-libs-4.6.2-8.el7.x86_64
samba-client-4.6.2-8.el7.x86_64
③查询vim编辑器程序是在安装哪个软件包时生成的,可以执行如下命令:
[root@localhost ~]$which vim
/usr/bin/vim
[root@localhost ~]$rpm -qf /usr/bin/vim
vim vimdiff vimtutor
[root@localhost ~]$rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-2.el7.x86_64
2.查询未安装的RPM软件包文件信息
使用“-qp”选项时,必须以RPM包文件的路径作为参数(可以有多个),而不是软件包名称
选项 | 说明 |
---|---|
rpm -qpi | 查询指定软件包的详细信息 |
rpm -qpl | 查询指定软件包的文件列表 |
rpm -pqc | 查询指定软件包的配置文件 |
rpm -qpd | 查询指定软件包的软件包文档的位置 |
四、安装、升级、卸载RPM包
在日常工系统管理工作中,安装、升级 及卸载软件包是管理应用程序最基本的工作内容
1.基本命令选项
- 命令格式:rpm [选项] RPM包文件
常用选项如下:
选项 | 说明 |
---|---|
-i | 安装一个新的RPM包 |
-U | 升级某个软件包,若未安装,则进行安装 |
-F | 升级某个软件包,若未安装,则放弃安装 |
-h | 在安装和升级的过程中,以“#”号显示安装进度 |
-v | 显示软件安装过程中的详细信息 |
-e | 卸载指定名称的软件包 |
- -nedops | 在安装或升级,卸载一个软件包时,不检查与其他软件的依赖关系 |
- -force | 强制安装某个软件,比如安装版本更旧的软件包 |
案例
卸载已安装的elinks 软件,卸载后查看是否成功,如下:
[root@localhost ~]$rpm -e elinks
[root@localhost ~]$rpm -q elinks
package elinks is not installed
2.维护RPM数据库
- 用于记录在Linux系统中安装、卸载、升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预。
- 当RPM数据库发生损坏(误删文件、非法关机、病毒破坏等导致),且Linux系统无法完成自动修复时,将导致无法使用rpm命令正常地安装、卸载及查询软件包。这时候可以使用rpm命令的"- -rebuilddb”或“- -initdb”功能对RPM数据库进行重建。
命令如下:
[root@localhost ~]$rpm --rebuilddb
或
[root@localhost ~]$rpm --initdb
- 导入验证公钥
在没有导入用于数字签名验证的公钥文件之前,安装光盘中的一部分RM软件包时会报错,需要向数据库中导入位于光盘根目录下的公钥文件,如下所示:
[root@localhost ~]# rpm --import/media/cdrom/RPM-GPG-KEY-CentOS-7
3.解决软件包依赖关系的方法
- 安装有依赖关系的多个软件时:
被依赖的软件包需要先安装
可同时指定多个.rpm包文件进行安装 - 卸载有依赖关系的多个软件时
依赖其他程序的软件包需要先卸载
可同时指定多个软件名进行卸载
五、 源代码编译安装
在Linux平台中搭建各种应用系统时经常会需要对软件包进行编译安装
1.源代码编译概述
使用源代码安装软件的优点
- 获得最新的软件版本,及时修复bug
- 根据用户需要,灵活定制软件功能
现代的Linux发行版本通常使用包管理机制对软件进行打包安装。这样省去了软件的编译安装过程,大大简化了Linux系统的安装和使用难度。但是在有些情况下,仍然需要使用源代码编译的方式为系统安装新的应用程序,如以下几种情况:
安装较新版本的应用程序时
当前安装的程序无法满足需要时
需要为应用程序添加新的功能时
确认源代码编译环境
编译源代码需要相应的开发环境,需安装支持C/C++程序语言的编译器,如gCC、gcC-C++、make、…等等
2.yum命令
安装源代码软件包需要编译安装,需要安装支持c和c++程序语言的编译器,如ges、gcc-c、make
如果使用rpm方式安装,则需要先安装多个依赖包,这样会很繁琐,我们就可以使用yum 方式进行一键安装
yum常用命令
命令 | 说明 |
---|---|
yum -y install | 安装升级软件包,“-y”选项表示自动确认 |
yum -y remove | 卸载软件包,可自动解决其依赖关系 |
yum -y update | 升级软件包 |
yum list | 查询软件包列表 |
yum list installed | 查询系统中已安装的软件包 |
yum list available | 查询仓库中尚未安装的软件包 |
yum list updates | 查询可以升级版本的软件包 |
yum info | 查询软件包的描述信息 |
yum search [all] 关键词 | 根据某个关键词来查找相关的软件包 |
yum whatprovides | 查询命令属于哪个软件包 |
3.yum本地源、网络源
- 本地源
配置如下:
首先我们进入虚拟机,打开设置把设备状态勾选上
然后具体操作如下:
[root@localhost ~]$mount /dev/sr0 /mnt/ 把光盘挂载到目录下
[root@localhost ~]$df -h 查看磁盘
[root@localhost ~]$cd /etc/yum.repos.d/ 本地源所有的源都在这个目录下
[root@localhost /etc/yum.repos.d]$mkdir repos.bak 创建目录
[root@localhost /etc/yum.repos.d]$mv*.repo repos.bak
[root@localhost /etc/yum.repos.d]$vim local.repo
设置仓库配置信息
[local] 仓库类别
name=local 仓库名称
baseurl=file:///mnt 指定URL访问路径为光盘挂载目录
enabled=1 开启yum源
gpgcheck=0 不验证软件包的签名
[root@localhost /etc/yum.repos.d]$yum clean all && yum makecache 删除yum缓存并更新
- 网络源
- 操作命令(收集所有安装包,包括依赖包保存在指定目录中)
yum install 包名 -y --downloadonly --downloaddir=/tmp/ 下载RPM包到指定目录
4.编译安装过程
- 第一步:首先安装依赖包(编译器),命令如下
[root@localhost /home]$yum install gcc* make apr-devel* pkgconfig* libapr* apr-util* pcre* -y
- 第二步:tar解包
[root@localhost /home]$tar zxvf httpd-2.4.25.tar\(1\).gz -C /usr/local/
- 第三步:配置软件模块(安装路径,开启或关闭模块功能)
[root@localhost /home]$cd /usr/local/httpd-2.4.25/
[root@localhost /usr/local/httpd-2.4.25]$./configure --prefix=/usr/local/apache
- 第四步:进行编译(就是将源代码转换为可执行的程序)
[root@localhost /usr/local/httpd-2.4.25]$make && make install
- 第五步:启动http服务
[root@localhost /usr/local/httpd-2.4.25]$/usr/local/apache/bin/apachectl start
- 最后进行验证(验证结果可以使用不同的方式)
[root@localhost /usr/local/httpd-2.4.25]$curl http://192.168.139.128
<html><body><h1>It works!</h1></body></html>
总结
更多推荐
所有评论(0)