把Linux的一些基本命令学习完了,如果我们要在Linux上做网站服务器使用,那就需要对Linux服务器做“改造”,让它变成web服务器。“改造”就是安装各种软件,搭建环境,比如安装web服务器软件Nginx、PHP、mysql数据库、memcache缓存……
在Windows中,我们安装软件,大体有两种方式:1下载压缩包,解压后直接就能使用。2下载一个后缀为exe的可执行文件,然后下一步下一步根据每一步的提示安装。仔细看下,不管哪种方式,最终安装的软件文件是二进制的,不是软件源代码,不需要编译。
这是我们的editplus编辑器软件,标注的文件都是二进制文件,都是这个软件程序编译后的文件,没有程序源代码。
在Linux中,安装一个软件,可以有好几种不同的方式安装,大体是分成两种:
①通过各种命令复制已编译好的二进制文件(可执行文件)到指定目录,和Windows上一样。
②复制程序软件源代码到指定目录,然后使用编译器将其编译成为可执行文件。(这在Windows系统中是几乎没有的,因为Windows的思想是不开放源程序的。)
一般来说著名的linux系统基本上分两大类:
1.RedHat系列:Redhat、Centos、Fedora等
2.Debian系列:Debian、Ubuntu等
RedHat 系列
1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
2 包管理工具 yum
3 支持tar包
Debian系列
1 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
2 包管理工具 apt-get
3 支持tar包
通常,tar包的,都是源程序;而rpm、deb包的则是可执行程序。一般来说,自己动手编译源程序能够更具灵活性,但也容易遇到各种问题和困难。而相对来说,下载那些可执行程序包,反而是更容易完成软件的安装,当然那样灵活性就差多了。所以一般一个软件总会提供多种打包格式安装程序的。你可以根据自己的情况来选择。
1)借助软件包管理器安装
①rpm命令
rpm是Red Hat Linux发行版专门用来管理Linux各项套件的程序。
如果安装包后缀是.rpm,可以使用rpm命令安装:
rpm –ivh rpm的软件包名
rpm也可以卸载一个软件
rpm –e 软件名
不过要注意的是,后面使用的是软件名,而不是软件包名。
例如,要安装software-1.2.3-1.i386.rpm这个包时,应执行:
rpm –ivh software-1.2.3-1.i386.rpm
而当卸载时,则应执行:
rpm –e software。
该方式软件安装本质与windows系统软件安装方式一致,就是把软件包里边的二进制代码文件复制到系统指定目录(C://Program Files)的过程。
优点:软件安装非常方便
缺点:软件的各个组成部分非常固定,不能灵活。需要手动解决依赖关系。
常用参数
参 数 | 含 义 |
-i | 指定安装的软件包 |
-h | 使用“#”显示详细的安装过程及进度 |
-v | 显示安装的详细信息 |
-q | 查询系统是否已安装指定的软件包 |
-a | 查看系统已安装的所有软件包 |
-e | 卸载软件包 |
--nodeps | 配合-e参数使用,强制卸载不检查依赖项 |
②yum工具
使用rpm命令安装软件包有个很大的缺点就是文件的关联性太大,有时装一个软件要安装很多其他的软件包,很麻烦。
所以为此RedHat小红帽开发了yum安装方法。yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
rpm命令只能安装已经下载到本地机器上的rpm 包. yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的。
两步安装一个软件,需要联网:
1.找到安装包名称
yum list | grep xxx
2.安装
yum -y install xxx
yum常用命令:
1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install <package_name>
4.仅更新指定的软件命令:yum update <package_name>
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove <package_name>
7.查找软件包 命令:yum search <keyword>
8.清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
③dpkg工具
我们一直使用的是ubuntu,ubuntu默认是没有安装rpm、yum工具的,但是有另外两个工具:dpkg工具和apt工具。
如果软件包后缀是.deb,安装命令:
dpkg –i deb的软件包名
dpkg –e 软件名
查询当前系统安装的软件包:
dpkg –l ‘*软件包名*’
④apt工具
dpkg只能安装已经下载到本地机器上的deb包. apt-get能在线下载并安装deb包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是dpkg工具所不具备的。
有关apt的二进制文件有这么多。
apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似。前面我们用apt安装过zip、tree命令。
两步安装一个软件,需要联网:
1.找到安装包名称
apt-cache pkgnames | grep xxx
2.安装
apt-get install xxx
apt常用命令:
sudo vi /etc/apt/sources.list 更新源服务器列表
sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get install package --only-upgrade 升级某个软件
sudo apt-get remove package 删除包
sudo apt-cache search package 搜索软件包
sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装
sudo apt-get remove package --purge 删除包,包括配置文件等
sudo apt-get build-dep package 安装相关的编译环境
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-cache depends package 了解使用该包依赖那些包
sudo apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖
2)二进制格式安装
这种方式,直接就是一个压缩包,可能是tar包、zip包,解压后,就是已经编译好的文件。找到有.bin后缀的文件
chmod 755 xxx.bin; ./xxx.bin
直接执行。
总结:
前面两种软件安装与windows软件安装原理一致,把从网络下载的“二进制码”软件从安装包复制到系统指定目录的过程。
二进制码软件文件----(复制)----》系统指定目录(C://Program Files)
3)源代码编译安装
一般都是压缩包,.tar、tar.gz、tar.bz2、tar.Z,先解压。源码安装比较复杂,包里全部都是源代码,没有编译过的。需要经过编译才能够安装。常见的 C 程序软件的安装步骤是 configure, make, make install 三部曲(./configure &;&; make &;&; make install)。
大致流程:
进入到解压出的目录中,建议先读一下README之类的说明文件,因为此时不同源代码包或者预编译包可能存在差异,然后建议使用ls -F --color或者ls -F命令(实际上我的只需要 l 命令即可)查看一下可执行文件,可执行文件会以*号的尾部标志。
一般依次执行:
./configure (检查编译环境) make (对源代码进行编译) sudo make install (将生成的可执行文件安装到当前计算机中) make clean (选择执行,主要是用来清除一些临时文件)
即可完成安装。
解释:
1、configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 察看详细的说明帮助。
2、make,这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。
3、make insatll,这条命令来进行安装(当然有些软件需要先运行 make check 或 make test 来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)。
如何查看某软件是否已安装?
因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了。总结起来就是这样几类:
1、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。
rpm -qa | grep xxx
2、yum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;
yum list installed | grep xxx
3、以deb包安装的,可以用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep “软件或者包的名字”;
dpkg -l | grep xxx
4.apt-get方法安装的,可以用apt list --installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;
apt list --installed | grep xxx
5、如果是以源码包自己编译安装的,例如.tar.gz或者tar.bz2形式的,这个只能看可执行文件是否存在了,
上面方法都看不到这种源码形式安装的包。如果是以root用户安装的,可执行程序通常都在/sbin:/usr/bin目录下。
结尾:
了解了在Linux下安装软件大致情况,从下节起我们依次安装web服务器所需要的各种软件。