序言
在Linux系统中,有三种安装软件的方法(当然是四种,ubuntu中还可以使用apt安装软件)
简单介绍:
外卖点订餐(做好的饭牙签)yum安装软件简单快捷(把握)买半成品(速冻水饺加工)rpm安装软件须要有软件安装包自己煮饭(菜品煮饭)编译安装软件可以灵活调整
异同点:
rpm
优点:单独安装软件
缺点:不能解决依赖关系yum
优点:解决软件依赖关系
缺点:不能灵活多样化编译安装
优点:单独定做安装软件
缺点:不能解决依赖关系rpm简介
RPM是以一种数据库记录的形式来将你所须要的套件安装到你的Linux主机的一套管理程序。也就是说,你的linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间依赖相关性。RPM包是预先在linux机器上编译好并打包好的文件,安装上去十分快捷。并且也有一些缺点,例如安装的环境必须与编译时的环境一致或则相当;包与包之间存在着互相依赖的情况;卸载包时须要先把依赖的包卸载掉,假如依赖的包是系统所必须的,那就不能卸载这个包,否则会导致系统崩溃。
每一个rpm包的名称都由”-“和”.”分成了若党员分。就拿a2ps-4.13b-57.2.el5.i386.rpm这个包来解释一下,a2ps为包名;4.13b则为版本信息;57.2.el5为发布版本号;i386为运行平台。其中运行平台常见的有i386,i586,i686,x86_64,须要你注意的是cpu目前是分32位和64位的,i386,i586和i686都为32位平台,x86_64则代表为64位的平台。另外有些rpm包并没有写具体的平台而是noarchlinux软件安装卸载,这代表这个rpm包没有硬件平台限制。诸如alacarte-0.10.0-1.fc6.noarch.rpm。
使用rpm命令安装扩充名为".rpm"的软件包
格式:rpm[选项]RPM包文件
常用选项:
-i:安装一个新的rpm软件包
-h:以“#”号显示安装的进度
-v:显示安装过程中的详尽信息
–force:强制安装所指定的rpm软件包
–nodeps:安装软件时,忽视依赖关系
(1)安装没有依赖包的.rpm软件
PS:这个不是在线下载,须要你当前文件夹有这个rpm包才行。在安装软件时,通常选项-ivh一起使用,这样可以看见安装进度与安装信息。
(2)安装有依赖关系的.rpm软件包。
可以同时将依赖包与软件包一起安装,右图中安装gcc-4.4.7-4.el6.x86_64.rpm软件包时,有两个依赖包,所以安装时,三个软件包一起安装。
升级或更新.rpm软件包
格式:rpm[选项]RPM包文件
常用选项:
-U:升级某个rpm软件,若先前未装,则进行安装
-F:更新某个rpm软件,若先前未装,则舍弃安装
–nodeps:升级软件时,忽视依赖关系
卸载指定的.rpm软件包
格式:rpm-efilename
–nodeps:卸载软件时,忽视依赖关系
PS:卸载时前面跟的filename和安装时的是有区别的。这儿的filename是通过rpm的查询功能所查询到的,稍后会作介绍。
查询已安装的.rpm软件包
格式:rpm-q[子选项][软件名]
常用子选项命令:
-qa:查看系统中已安装的所有RPM软件包列表
-qi:查看指定软件的详尽信息
-ql:查询指定软件包所安装的目录、文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
这儿的软件名,是不带有平台信息以及后缀名的)
查看软件包是否有安装
查询文件或目录是那个软件包安装的
格式:rpm-qf文件或目录名
查询未安装的.rpm软件包文件
格式:rpm-qp[子选项]RPM包文件
常用的子选项:
-qpi:通过.rpm包文件查看该软件的详尽信息
-qpl:查看.rpm安装包内所包含的目录、文件列表
-qpc:查看.rpm安装包内包含的配置文件列表
-qpd:查看.rpm安装包内包含的文档文件列表
PS:查询未安装的软件包时,必须输入整个安装包的名称,而查询已安装的软件包时,只要输入软件包名就可以了
yum简介
介绍完rpm工具后,还须要你把握最常用的yum工具,这个工具比rpm工具好用多了,其实前提是你使用的linux系统是支持yum的。yum最大的优势在于可以联网去下载所须要的rpm包,之后手动安装,在这个工程中假如要安装的rpm包有依赖关系,yum会帮你解决掉那些依赖关系依次安装所有rpm包。
yum源的获取本地源设置
使用yum命令时,必须依赖于yum源,而yum源可以从互联网获取,也可以构建本地的yum源;从互联网获取的yum源,前提条件必须联接互联网,联接互联网后,直接使用yum命令安装,默认情况yum源的配置文件是在**/etc/yum.repos.d目录下,打开/etc/yum.repos.d**,可以看见yum源默认用的CentOS官网的。
倘若未能联接内网,这么就须要完善本地的yum源,当有硬盘时,完善本地yum源的步骤:
(1)在系统根目录下新建一个目录abc;
(2)将系统安装光碟挂到根/abc目录下;
(3)在/etc/yum.repos.d/目录下新建一个xxx.repo的yum源文件,如新建的yum源文件名称为testyum.repo,新建testyum.repo文件前,须要先将/etc/yum.repos.d/目录下的文件全部删掉;
在testyum文件中输入下边的内容:
[yunSource]#yum源名称
name=yumSource#yum源名称
baseurl=file:///abc#yum源所在的本地路径,file://是指本地硬碟上
gpgcheck=0#不校准软件包是不是官方发布的
(4)文件输入完成后保存并退出,查看/etc/yum.repos.d目录下已生成一个testyum.repo的文件,用命令yumrepolistall查看一下构建的yum源库房是否构建成功;
(5)yumcleanall清空一下缓存
(6)yumrepolist重新加载库
(7)这样就可以用yum源安装软件包了;
备注:假如Linux可以上内网,baseurl可以用网易的镜像源:
配置阿里源等…
# 统一yum安装的环境:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 命令作用:
从阿里云下载一个yum源文件,更新默认的/etc/yum.repos.d/CentOS-Base.repo,使下载环境统一
使用yum命令来安装软件包
格式:yuminstall[-y]软件名
-y:假如使用-y,这么在安装软件时命令行就不会出现"Isthisok[y/N]"这条提醒句子了,更不须要在命令行输入y或N了,直接安装软件
备注:对于安装有依赖包的软件,用yum命令非常便捷,假如用rpm命令,就必需要先装依赖包再装软件包RAR FOR LINUX,而yum命令会直接匹配依赖包之后直接安装
卸载一个rpm包
格式:yumremove[-y][rpm包名]
列举所有已安装的软件包
格式:yumlistinstalled
列举所有可安裝的软件包
格式:yumlist
搜索一个软件包
(1)yumsearch[相关关键词]
(2)yumlist|grep软件名
列举所有软件包的信息或单独一个软件包的信息
(1)yuminfo:列举所有软件包的信息
(2)yuminfo软件名:列举指定软件包的信息
升级一个软件包
格式:yumupdate[-y][rpm包]
安装源码包简介
虽然,在linux下边安装一个源码包是最常用的。安装一个源码包,是须要我们自己把源代码编译成二补码的可执行文件。假如你读得懂这种源代码,这么你就可以去更改那些源代码自定义功能,之后再去编译成你想要的。使用源码包的益处不仅可以自定义更改源代码外还可以订制相关的功能,由于源码包在编译的时侯是可以附加额外的选项的。
源码包的编译用到了linux系统里的编译器,常见的源码包通常都是用C语言开发的,这也是由于C语言为linux上最标准的程序语言。Linux上的C语言编译器称作gcc,借助它就可以把C语言弄成可执行的二补码文件。所以假如你的机器上没有安装gcc就没有办法去编译源码。你可以使用yuminstall-ygcc来完成安装。
用源代码安装软件的优点:
可以获得最新的软件,及时修补bug;按照用户的需求,灵活订制软件功能
编译安装源包必需要有源代码编译环境。编译源代码步骤
configure、Makefile.in通常是项目管理器手动生成的,而gcc编译器须要安装,使用yum命令安装。
安装一个源码包,一般须要三个步骤:
./config在这一步可以定做功能,加上相应的选项即可,具有有哪些选项可以通过”./config--help”命令来查看。在这一步会手动检查你的linux系统与相关的套件是否有编译该源码包时须要的库,由于一旦缺乏某个库就不能完成编译。只有检查通过后才能生成一个Makefile文件。
make使用这个命令会依照Makefile文件中预设的参数进行编译,这一步当然就是gcc在工作了。
makeinstall安装步骤,生成相关的软件储存目录和配置文件的过程。
前面介绍的3步并不是所有的源码包软件都一样的,源码包的安装并非具有一定的标准安装步骤。这就须要你领到源码包解压后,之后步入到目录找相关的帮助文档,一般会以INSTALL或则README为文件名。所以,你一定要去看一下。
源码安装步骤下载一个源码包
这儿要提一下,建议之后你把所有下载的源码包放在/usr/local/src/目录下,这个并不是必须的,只是一个约定。便捷你和你的朋友将来更好的去运维这台服务器。
PS:下载出来的源码包,可以使用md5sum校准工具,进行完整性校准,避免源码包被他人串改,校准方式:估算MD5校准和,并与官方提供的值相比较,判定是否一致,假若一个致,代表没有串改,假若不一致,就表明已被他人串改了。
提示:用firefox浏览器下载文件默认保存到当前用户root的主目录/root/Downloads目录下,假如是其它普通用户登入的,默认保存到/home/普通用户名/Downloads目录下。也可以使用wget下载源码,wget即为下载的命令,上面跟源码包的下载地址。(wget在那个目录下运行,则下载的文件就在哪个目录)
解压源码包
步入这个解压后的文件,可以看见源码目录。
配置相关的选项,并生成Makefile
使用./config--help可以查看可用的选项。通常常用的有”–prefix=PREFIX“这个选项的意思是定义软件包安装到那里。
常源码包都是安装在/usr/local/目录下的。
结束后生成了Makefile文件。不仅查看有没有生成Makefile文件来判断有没有完成./config的操作外,还可以通过这个命令”echo$?”来判断,倘若是0,则表示上一步操作成功完成,否则就是没有成功。
备注:
(1)/usr/local/apache2目录是随便指定的一个安装目录,也可以安装到其它目录下;
(2)使用./configure配置时,须要将工作目录切换到软件源码所在的目录;
(3)使用源码目录中的configure脚本,因为configure是软件程序而不是系统命令,所以执行时,须要指明路径,因为目前是在httpd-2-2.15linux软件安装卸载,可以使用相对路径./configure,.(点)的意思是指当前目录httpd-2-2.15目录;
(4)–prefix选项是配置安装的路径,倘若不配置该选项,安装后可执行文件默认置于/usr/local/bin,库文件默认置于/usr/local/lib,配置文件默认置于/usr/local/etc,其它的资源文件置于/usr/local/sharelinux运维招聘,比较零乱;假如使用–prefix选项可以将安装文件放在/usr/local/apache2目录中,有利于查找、卸载软件或移植软件,当某个安装的软件不再须要时,只须简单的删掉该安装目录,就可以把软件卸载得干干净净,移植软件只需拷贝整个目录到另外一个机器即可;
进行编译执行make命令即可
这一步操作,就是把源代码编译成二补码的可执行文件,这一步也是最漫长的一步,编译时间的长短取决于源代码的多少和机器配置。
安装—makeinstall
在安装前,用echo$?先确认上一步操作是否成功完成。、
使用安装makeinstall命令安装程序、
使用安装/usr/local/apache2/bin目录下的apachectl程序,用./apachectlstart启动安装程序
关掉程序
备注:make与makeinstall命令可以合写成一行
疑惑
(1)centos中使用rpm包或yum命令在线安装的软件默认是安装在那个目录下?
这个不是rpm包管理器和yum命令决定的,而是软件包自身会选择安装到某个地方,一般会在这几个文件夹中。
1,/bin可执行文件
2,/usr/bin可执行文件
3,/sbin可执行文件
4,/usr/local/bin可执行文件
5,/usr/include头文件
6,/usr/local/include头文件
7,/lib库
8,/usr/lib库
9,/usr/local/lib库
10,还有一些配置文件,在/etc下,或则/var下
补充apt简介
apt可以更新软件包列表索引、执行安装新软件包、升级现有软件包,还能否升级整个Ubuntu系统(apt是Debian系操作系统的包管理工具)。与更专业的APT(AdvancedPackagingTool)工具apt-get和apt-cache相比,apt具有一些更适宜交互式场景的选项,它更倾向于成为面向最终用户的工具(而不仅仅是系统管理员)。换句话说,apt比apt-get用上去更简单,用户体验更好。
基本句型句型格式:
apt[options]command
配置文件:
初期apt默认的配置文件为/etc/apt/apt.conf,并且当前的Ubuntu系统中默认没有这个文件。
假如/etc/apt/apt.conf文件存在,apt依然会读取它。但现今的设计思路是把配置文件分隔后放置在/etc/apt/apt.conf.d目录下,这样更容易管理。
常用子命令:
update
update命令用于从配置的源下载包信息。update命令应当总是在安装或升级包之前执行。
upgrade
upgrade命令用于从配置的源安装当前系统中的所有包的可用升级。假如须要满足依赖关系,就安装新的包,而且不会删掉现有的包。假如包的升级须要删掉已安装的包,则不执行此包的升级。
full-upgrade
full-upgrade命令执行升级功能,假如须要将系统升级到新的版本,则会删掉当前已安装的包。
install,remove,purge
install命令拿来安装一个或多个指定的包。remove命令拿来删掉包,而且会保留包的配置文件。purge命令会在删掉包的同时删掉其配置文件。
autoremove
autoremove命令用于删掉手动安装的包,这种包是为了满足其他包的依赖关系而手动安装的,随着依赖关系的修改或须要它们的包已被删掉,这种包如今不再须要了。
search
search命令用于在可用包列表中搜索给定的项并显示匹配到的内容。诸如,假若您正在找寻具有特定功能的包,这将特别有用。
show
show命令显示关于给定包的信息,包括它的依赖关系、安装和下载大小、包的来源、包内容的描述等等。例如,在删掉一个包或搜索要安装的新包之前查看这种信息是很有帮助的。
list
list命令可以显示满足特定条件的包列表,默认列举所有的包。可以通过--installed选项列举已安装的包,–upgrade选项列举可以升级的包。
edit-sources
edit-sources命令拿来编辑/etc/apt/source.list文件:
$sudoaptedit-sources
常见用法
更新包索引文件
$sudoaptupdate
安装包
$sudoaptinstallnginx
安装指定版本的包
$sudoaptinstallvim=2:8.0.1453-1ubuntu1
安装本地的deb包文件
$sudoaptinstallname.deb
这些方式会手动下载并安装依赖的包。
安装系统中有更新的包
upgrade命令会升级已安装的包,同但不移除任何包。它的目标是确保可能的侵入式升级最小化:
$sudoaptupdate
$sudoaptupgrade
删掉包。通过下边两个命令可以删掉使用aptinstall安装的包:
$sudoaptremovenmap
$sudoaptpurgenmap
其中remove命令会保留配置文件,而purge命令会把配置文件一起删掉。
查看包的信息
$aptshowvim
Package:vim
Version:2:8.0.1453-1ubuntu1.1
Priority:optional
Section:editors
Origin:Ubuntu
Maintainer:UbuntuDevelopers
Original-Maintainer:DebianVimMaintainers
Bugs:+filebug
Installed-Size:2,852kB
Provides:editor
Depends:vim-common(=2:8.0.1453-1ubuntu1.1),vim-runtime(=2:8.0.1453-1ubuntu1.1),libacl1(>=2.2.51-8),libc6(>=2.15),libgpm2(>=1.20.7),libPython3.6(>=3.6.5),libselinux1(>=1.32),libtinfo5(>=6)
Suggests:ctags,vim-doc,vim-scripts
Homepage:
Task:cloud-image,server
Supported:5y
Download-Size:1,152kB
APT-Manual-Installed:yes
APT-Sources:bionic-updates/mainamd64Packages
Description:ViIMproved-enhancedvieditor
VimisanalmostcompatibleversionoftheUNIXeditorVi.
输出指定条件的包列表
可以指定某个包的名称,否则会输出大量的信息:
$aptlistvim
$aptlistdocker
还可以使用转义:
可以通过--installed选项列举所有已安装的包,而--upgradable选项则列举所有可以升级的包:
搜索包
search命令用于在可用包列表中搜索给定的项并显示匹配到的内容。例如下边的命令,我们搜索docker,与之相关的cadvisor也被搜索下来了:
$aptsearchdocker
apt与apt-get的区别
简单来说apt命令就是apt-get、apt-cache和apt-config中最常用命令选项的集合。下边是几个常见命令的对照关系:
list:与dpkg--list相像
search:与apt-cachesearch相像
show:与apt-cacheshow相像
update:与apt-getupdate相同
install/remove:与apt-getinstall/remove相像,而且多了进度条提示
upgrade:与apt-getupgrade--with-new-pkgs相同
full-upgrade:与apt-getdist-upgrade相像