Linux 应用程序安装卸载
文章目录
- 前言
- 一.Linux应用程序基础
- 1.1:应用程序与系统命令的关系
- 1.2:典型应用程序的目录结构
- 二.查询RPM软件包信息
- 2.1:RPM概述
- 2.2:查询RPM软件包信息
- 2.2.1:查询已安装的RPM软件包信息
- 2.2.2:查询未安装的RPM软件包文件中信息
- 三.安装,升级,卸载RPM软件包
- 3.1: 安装、升级RPM软件
- 3.2 :卸载RPM软件
- 3.3:维护RPM数据库
- 四. Linux系统挂载Windows系统的文件
- 五. Yum概述与常用命令(简单的介绍)
- 5.1:Yum常用命令
- 六. 源代码编译安装
- 6.1:源代码编译安装概述
- 6.2:编译安装的基本过程
- 6.2.1:编译图解
- 6.2.2: 解决软件包依赖关系方法:
- 6.2.3:解压
- 6.2.4:修改配置文件
- 6.2.5:编译
- 6.2.6:安装
前言
在主机中安装了Linux操作系统之后,就具备了提供软件服务,网络服务等功能的基础。然而随着操作系统一起安装的软件包毕竟只有少数,实现的功能也比较有限,当需要为主机提供更多功能时,安装新的应用程序就成为必然要面对的工作。
一.Linux应用程序基础
1.1:应用程序与系统命令的关系
在Linux系统中,一直以来命令和应用程序并没有特别明确的区别,从长期使用习惯来看,我们可以通过以下描述来对两者进行区别。
系统命令 | 应用程序 | |
---|---|---|
文件位置 | 一般在/bin和/sbin目录中,称为Shell内部指令 | 通常在/usr/local目录中 |
主要用途 | 完成对系统的基本管理工作,如IP配置工具(ipconfig) | 完成相对独立的其他辅助任务,如网页浏览器 |
适用环境 | 一般只在字符操作界面中运行 | 根据实际需要,有些程序可以在图形界面中运行 |
运行格式 | 一般包括命令字,命令选项和命令参数 | 通常没有固定的执行格式 |
1.2:典型应用程序的目录结构
文件类型 | 保存目录 |
---|---|
普通执行程序文件 | /usr/bin(管理员和其他用户都可以使用) |
服务器执行程序文件和管理程序文件 | /usr/sbin(仅管理员使用) |
应用程序配置文件 | /etc(应用程序配置文件默认路径) |
日志文件 | /var/log(可变长文件存放位置) |
应用程序文档文件 | /usr/share/doc(一般都是一些说明文档在此) |
应用程序手册页文件 | /usr/share/man(man手册可以查看命令帮助信息和程序帮助信息) |
*都是默认安装路径
文件类型 | 保存目录 |
---|---|
rpm软件包 | 一键安装,扩展名为“.rpm”只能在使用RPM(RPM Package Manager,RPM软件包管理器)机制的Linux操作系统中安装,如RHEL,Fedora,CentOS等。 |
deb软件 | 扩展名为“.deb”只能在使用DPKG(Debian Package,Debian包管理器)机制的Linux操作系统中进行安装,如Debian,Ubuntu等。 |
源代码软件包 | 一般为“.tar.gz”,“.tar.bz2”等格式的压缩包,这种软件包是程序员开发完成的原始代码,因多数使用tar命令打包而成,所以经常被称为“TarBall”。安装源码软件包需要使用相应的编译工具,如Linux中的C语言编译器gcc。 |
绿色免安装的软件包 | 在压缩包内提供已编译好的执行程序文件,解开压缩包后的文件即可直接使用。免安装,硬盘版,直接用 |
二.查询RPM软件包信息
2.1:RPM概述
RPM软件包管理机制最早由Red Hat公司提出,后来随着版本的升级逐渐融入了更多的优秀特性,成为众多Linux发行版中公认的软件包管理标准。
RPM包管理器通过建立统一的文件数据库,对在Linux系统中安装,卸载,升级的各种.rpm软件包进行了详细的记录,并能够自动分析软件包之间的依赖关系,保持各个应用程序在一个协调没有虚的整体环境中运行。
RPM Package Manager |
---|
由Red Hat公司提出,被众多Linux发行版所采用 |
建立统一的数据库文件 |
详细记录软件包安装,卸载等变化信息 |
自动分析软件包依赖关系 |
RPM机制封装的软件包文件拥有约定俗成的命名格式,一般使用“软件名 - 软件版本 - 发布次数.操作系统类型.硬件架构类型.rpm”的文件名形式。例如:
2.2:查询RPM软件包信息
使用rpm命令的查询功能可以检查某个软件包是否已经安装,了解软件包的用途,软件包复制到系统中的文件等各种相关信息,以便更好地管理Linux系统中的应用程序。
2.2.1:查询已安装的RPM软件包信息
rpm -q [子选项] [软件名]
命令 | 解释 |
---|---|
rpm -qa | 查看系统中以RPM方式安装的所有软件列表 |
rpm -qi | 软件包的详细信息(查看指定软件包的名称,版本,许可协议,用途等描述信息) |
rpm -ql | 软件包当中的所有文件,显示指定的软件包在当前系统中安装的所有目录,文件列表 |
rpm -qf | 根据指定文件或目录查看是属于哪个软件包安装的 |
rpm -qc | 查看软件包所有配置文件。如conf cnf ini 都是配置文件 |
rpm -qd | 查看软件包的文档 |
[root@localhost opt]# rpm -q bash
bash-4.2.46-28.el7.x86_64[root@localhost opt]# rpm -qa |grep bash
bash-4.2.46-28.el7.x86_64
bash-completion-2.1-6.el7.noarch
2.2.2:查询未安装的RPM软件包文件中信息
rpm -qp 【子选项】【RPM包文件】
使用“-qp”选项时,必须以RPM包文件的路径作为参数(可以有多个),而不是软件包名称。
命令都与“-q”类似
-qpi 查看该软件的详细信息
-qpl 查看包内所有包含的目录、文件列表
三.安装,升级,卸载RPM软件包
- 使用rpm命令实现安装,升级,卸载软件包这些操作时,需要了解基本的命令选项。
3.1: 安装、升级RPM软件
rpm -ivh
命令 | 解释 |
---|---|
-i | 安装一个新的rpm软件 |
-e | 卸载指定名称的软件包 |
-U | 检查并升级系统中的某个软件包,若该软件包原来并未安装,则等同于“-i”选项 |
-F | 检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装 |
-force | 强制安装某个软件包,当需要替换现已安装的软件包及文件,或者安装一个比之前使用的软件版本更旧的软件时,可以使用此选项。 |
-h | 在安装或升级软件包的过程中,以“#”号显示安装进度 |
-v | 显示软件安装过程中的详细信息 |
3.2 :卸载RPM软件
rpm -evh
rpm -e [软件名]
辅助选项
–nodeps 安装、升级或卸载软件是、忽略关系。
[root@localhost Packages]# rpm -e lynx
3.3:维护RPM数据库
用于记录在Linux系统中安装,卸载,升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预。当RPM数据库发生损坏(误删文件,非法关机,病毒破坏等导致),且Linux系统无法自动完成修复时,当导致无法使用rpm命令正常的安装,卸载及查询软件包。
这时候可以使用rpm命令的“–rebuilddb”或“–initdb”功能对RPM数据库进行重建。
例如
[root@localhost~]#rpm --rebuilddb
或者
[root@localhost~]#rpm --initdbdb的意思是数据库(database)
init的意思是初始化
四. Linux系统挂载Windows系统的文件
[root@localhost ~]# mount /dev/cdrom /mnt #挂载光盘到/mnt
[root@localhost ~]# df -h #查看挂载情况
[root@localhost ~]# unmount /dev/cdrom #接触挂载
五. Yum概述与常用命令(简单的介绍)
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
5.1:Yum常用命令
安装软件(以lynx-x.x.x.rpm为例)
安装:yum install -y lynx
删除:yum remove lynx 或者 yum erase lynx
升级:yum update lynx 或者 yum upgrate lynx
查询:yum info lynx
搜索软件:yum search lynx
显示软件包依赖关系:yum deplist lynx
清空yum仓库缓存:yum clean all
生成yum缓存: yum makecache
六. 源代码编译安装
6.1:源代码编译安装概述
Linux操作系统之所以能够在十余年的时间里发展壮大以至于风靡全球,其开放源代码的特性是很重要的原因之一,及Linux操作系统中包括内核在内的所有软件都可以获得源代码,并且可以经过定制修改后编译安装。
虽然现代的Linux发行版本大部分采用包管理机制对软件进行打包安装,可以省去软件的编译安装过程,但是还有些情况需要使用源代码编译的方式为系统安装新的应用程序。
安装较新版本的应用程序时 |
---|
大多数的Linux发行版都提供了相当丰富的应用程序,而这些应用程序的版本往往滞后于该软件的最新源代码版本,所以下载应用程序的最新源代码包并编译安装,可以在程序功能,安全补丁等方面得到及时更新。 |
当前安装的程序无法满足应用需求时 |
---|
对于RPM格式封装的应用程序,一般只包含了该软件所能实现的一小部分功能,而难以由用户自行修改,定制。通过对程序的源代码进行编译安装后,可以定制更灵活,更丰富的功能。许多Linux服务器程序都采用源代码编译的方式进行安装,以获得更适合于企业实际应用需求的服务。 |
为应用添加新的功能时 |
---|
当需要利用现有的程序源代码进行适当的修改,以便增加新的功能时,必须释放出该软件的源代码,修改后再重新编译安装。 |
使用源代码安装软件的优点 |
---|
获得最新的软件版本,及时修复bug |
根据用户需要,灵活定制软件功能 |
编译源代码需要有相应 的开发环境,对于自由软件来说,gcc和make是最佳的编译工具。Linux系统采用默认安装后没有安装gcc,我们可以使用rpm命令来安装gcc。所需的软件包在镜像文件中就有提供。
yum install gcc gcc-c++ -y
6.2:编译安装的基本过程
6.2.1:编译图解
获得所需安装的软件源代码以后,安装的基本过程包括解包,配置,编译及安装。大多数开源软件的安装都遵循这个过程。
6.2.2: 解决软件包依赖关系方法:
方法一:安装有依赖关系时的多个软件时:
·被依赖的软件包需要先安装
·可同时指定多个rpm包文件进行安装
方法二:卸载有依赖关系的多个软件时:
·依赖其他程序的软件包需要先卸载
·可同时指定多个软件民进行卸载
方法三:忽略依赖关系:
结合 – nodeps 选项,但是可能会导致软件异常#####下面为HTTP的依赖关系包#####共7个包
[root@localhost httpd-2.4.25]# rpm -ivh /mnt/Packages/pcre-devel-8.32-17.el7.x86_64.rpm
[root@localhost httpd-2.4.25]# rpm -ivh /mnt/Packages/apr-devel-1.4.8-3.el7_4.1.x86_64.rpm
[root@localhost httpd-2.4.25]# rpm -ivh /mnt/Packages/expat-devel-2.1.0-10.el7_3.x86_64.rpm
[root@localhost httpd-2.4.25]# rpm -ivh /mnt/Packages/libdb-devel-5.3.21-24.el7.x86_64.rpm
[root@localhost httpd-2.4.25]# rpm -ivh /mnt/Packages/cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm
[root@localhost httpd-2.4.25]# rpm -ivh /mnt/Packages/openldap-devel-2.4.44-13.el7.x86_64.rpm
[root@localhost httpd-2.4.25]# rpm -ivh /mnt/Packages/apr-util-devel-1.5.2-6.el7.x86_64.rpm
6.2.3:解压
- 开源软件的源代码包一般为TarBall形式,扩展名为“.tar.gz”或“.tar.bz2”,都可以使用tar命令进行解压。
- 在Linux系统中,通常将各种软件的源代码目录保存到“/sur/src”目录中,便于集中管理。
6.2.4:修改配置文件
- 在编译应用程序之前,需要进入源代码目录,对软件的安装目录,功能选择等参数进行配置。
- 在Linux系统中通过源代码方式安装软件时,也可以将所有程序文件安装到同一个文件夹,当需要卸载软件时,只需将该文件夹删除即可。
6.2.5:编译
- 编译的过程主要是根据Makefile文件内的配置信息(若上一步的配置操作失败,将无法进行编译),将源代码文件进行编译而生成二进制的程序模块,动态链接库,可执行文件等。
- 配置完成后,只需要在源代码目录中执行“make”命令即可执行编译操作。
6.2.6:安装
- 编译完成后,就可以执行“make install”命令将软件的执行程序,配置文件,帮助文档等相关文件复制到Linux系统中了,也就是应用程序的最后“安装”过程。同样是在源代码目录中执行命令。
#####上传http-2.4.25.tar.gz软件包到/opt目录下#####
[root@localhost ~]# cd /opt
[root@localhost opt]# tar xzvf httpd-2.4.25.tar.gz -C /opt #解压压缩包
[root@localhost opt]# cd httpd-2.4.25/ #进入httpd-2.4.25目录
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/apache #./configure配置 这里添加了安装的路径
[root@localhost httpd-2.4.25]# make #生成二进制程序包
[root@localhost httpd-2.4.25]# make install #安装程序包
[root@localhost httpd-2.4.25]# cd /usr/local/apache/bin/ #进入/usr/local/apache/bin/目录
[root@localhost bin]# vi /usr/local/apache/conf/httpd.conf #在194行 # 号去掉
[root@localhost bin]# ./apachectl start
httpd (pid 19441) already running
[root@localhost bin]# rpm -ivh /mnt/Packages/lynx-2.8.8-0.3.dev15.el7.x86_64.rpm[root@localhost bin]# lynx 127.0.0.1 #这个是客户端的浏览工具 It works!
Linux 应用程序安装卸载相关推荐
- Linux之用户管理、权限管理、程序安装卸载
一. 用户管理 1. 查看账户 (1). 查看当前账号:whoami (2). 查看系统当前登录的账号:who 补充常用选项: (3). 查看系统所有的账号: cat /etc/passwd ...
- 初学Linux之程序安装
Linux下程序安装主要有三种方式:rpm安装.yum安装及源码编译安装.下面就我学习的简单介绍一下: rpm方式安装: RPM 全名是[ RedHat Package Manager], RPM 是 ...
- linux安装软件很慢么,提高Fedora Linux应用程序安装速度的方法
Fedora是一个功能强大的Linux发行版,但它有一个严重的缺点:DNF包管理器,与Ubuntu和Debian的Apt,Arch的Pacman,甚至是OpenSUSE的Zypper相比比较慢.本文介 ...
- android 应用程序安装卸载(安装应用宝后自动弹出卸载应用宝)
获取程序安装卸载广播 电脑上有腾讯管家,作为安卓开发,用真机测试的比较多,鄙人算一个,不喜欢用应用宝,当你卸载了应用宝之后,插上USB,有时候就回静默安装应用宝,然后弹出应用宝获取什么什么权限,特别烦 ...
- linux应用程序安装与管理
一.Linux应用程序与命令的关系 1.基本命令是Linux系统中不可缺少的组成部分 <?xml:namespace prefix = o ns = "urn:schemas-micr ...
- 那个linux系统带有安装工具,linux系统程序安装(一)rpm工具
Linux系统下程序安装主要采用三种方式: 1.rpm,有点类似.msi 和.exe比较类似,软件包(相当于windows的某个程序的所有文件)的安装路径和文件名称基本是固定的,但是他不会安装关联的包 ...
- Linux 中如何安装卸载软件
Linux软件的安装和卸载一直是困扰许多新用户的难题.在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的"添加/删除程序" 来实现.与其相类似,在Linux下有 ...
- linux查看mariadb安装卸载,MySQL——在Linux下安装和卸载MariaDB
MySQL--在Linux下安装和卸载MariaDB 摘要:本文主要学习了如何在Linux系统中安装和卸载MariaDB数据库. 查看有没有安装过MariaDB 使用命令查看有没有安装过: 1 [ro ...
- linux卸载常用软件,Linux 下软件安装卸载常用方法
1.软件安装卸载,分几种情况: A:RPM包,这种软件包就像Windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只需要双 ...
- Ubuntu Linux 软件寻找/安装/卸载 图文详解教程
作为一个桌面操作系统,Ubuntu(以后我简称为UB)自然也和Windows一样,拥有众多的实用软件,让我们平常来使用.很多新手,在安装了Ubuntu系统后,面对着与众不同的桌面,不知道该如何安装软件 ...
最新文章
- 2022-2028年中国丁晴橡胶行业市场深度分析及投资规划分析报告
- 通俗易懂的TCP里面的三次握手以及四次挥手
- 搜索suggest实现 动态的查询建议
- python 画图 内存-python来做专项测试-内存测试
- 2018-10-03-Python全栈开发-day60-django序列化-part3
- 牛客 Bang! Bang!(动态规划)
- 【2017年第1期】金融大数据标准规范体系比较研究
- Bootstrap 3 加半星 Star rating with half-stars
- bug君你好啊之访问servlet时出现此程序可以连接到 Web 服务器,但是因为地址问题无法找到该网页。
- 异常:java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext
- wince中实现SQLite数据库及二进制文件保存与读取
- matlab实验十ask,matlab实验十ASK调制与解调实验
- Java开发逻辑思维题
- 最详细的3DMax 2019安装教程(从解压开始)
- 对分法求非线性方程的根
- java转Js原生,Java到JavaScript的转换
- Centos 7 虚拟机启动,Entering emergency mode问题解决
- Android剥洋葱式解析JSON数据
- 月是故乡明,每逢佳节倍思亲,近乡情更怯
- 使用LOL盒子的数据查询简单的战斗力信息