现在要进军linux php服务端,并且我准备抄一个shopxo的开源商城系统,那么linux底下的服务就要先配起来,没有开发环境啥都白搭。
1.首先我用我的VM虚拟机装了Centos 7 ,Centos 7 一般都会带yum,rpm工具的。
2.然后咱们聊聊rpm和yum源,这两个东西。
1.rpm是包管理机制(看过鸟哥私房菜就知道了,具体不说了),它的核心数据文件是/var/lib/rpm,这里存了很多依赖性文件的信息,也包括将要下载的rpm软件信息都会写入这里。
2.但rpm无法自动将所需要的依赖文件一口气下载,所以要yum来做这个工作。所以说现在的yum是基于rpm的,通过yum下载的包就是rpm包。yum的数据是缓存类型,在/var/cache/yum下面,这个缓存数据记录着镜像源(yum服务器也叫开源镜像站点)上的文件(包括依赖文件)清单,你只要用yum search命令,它就会开始访问镜像源去找你指定的那个软件包。软件下载的时候,它会跟/var/lib/rpm下的数据对比来解决依赖问题。
3.yum是联网操作类型的(也可以不联网,具体看man手册)。如果你没下载想要的软件包那么执行 yum list的时候,它会去找可用的包,如果你下载了,它会提示你已经有一个这样的包可以用。再如 yum search ,它就会去联网的yum服务器给你找可用的包
4.yum不提供指出安装软件完整路径的功能,所以要用rpm -ql 来查询路径,rpm查询操作不像yum会自动联网给你找,rpm的查询只找本地的包。
5.yum下载的包,也是记录到rpm数据库的,所以rpm可以执行搜索命令
6.rpm包的安装是可以像原始码一样更改路径下载到/usr/local/下的,yum是下载到了标准路径下面(yum似乎还改不了路径)。
7.如果当前的源发生了下载时报错(404等),那么可能就要换源站点了,我们可以备份一下当前的源(因为可能现在的源也是有用的,备份成一个.BAK文件),然后如果找到了可用的源,直接修改mirrorlist / baseurl(这两个是有区别的,虽然都有作用,具体请自行csdn/百度),也可以wget一个源。
3.关于对yum镜像源的疑惑解答
1. 鸟哥私房菜里面说了,一定要找到repodate这个文件目录,才可以使用yum,因为这个文件有yum的索引,是个.xml文件,文件相依性分析都写在里面。
2.一开是入坑的时候,去镜像网站找应用软件,发现绝大多数都是只提供源码包,rpm机制是几乎不提供的,但有个目录比较例外,那就是centos X/OS/x86_64/这种目录下就会有repodate,不管是网易还是阿里的镜像都是这样。仔细查找资料,原来是这么回事:参考我转载的博客:https://mp.youkuaiyun.com/postedit/97570893 。
直接建立一个CentOS iso,这个ISO包含各种应用软件,然后使用createrepo 工具在ISO释出的系统中制作出了yum仓库也就是yum 服务器(平常我们的linux是yum客户端),然后开放出来就成了镜像站,这也解释了,为什么每次改的都是系统默认配置,因为这个repodate目录在yum服务器上都是在系统目录下。其实也可以每个应用软件目录都做成一个仓库的,但ISO镜像已经全部都包含应用软件,使用OS下的那个repodate足够,所以没必要这样做。
3.yum源改为国内会比较快,国外速度慢而且被墙就用不了,yum源要用国内知名公司或者官网,因为怕中招。 PS:CentoS的源速度相对较快,比较常用。
4.可以每安装一个特定的软件,就新建一个新的对应的.repo配置文件,然后配置文件名就作为yum的参数。比如说,我安装一个nginx,按照官网的要求新建了名为nginx的.repo源,那么yum的时候,nginx(文件名)就作为yum的参数:
yum install nginx。
4.不使用ftp,上传win文件
1.在win上装一个客户端secureCRT。具体操作参考博客:
https://blog.youkuaiyun.com/weixin_43063753/article/details/84262173
https://blog.youkuaiyun.com/lxn18392641463/article/details/79446953
2.linux有个小工具lrzsz能够使得linux在不启动ftp服务下,也能够进行传输数据文件,相当方便,Centos 7 是默认装了这个工具的。
具体用法参考博客https://blog.youkuaiyun.com/dbljy2015/article/details/53908256
3.linux作为服务端一定要有lrzsz这个工具,客户端那边只是用secureCRT 作为win的打开窗口。
TIPS:安装好的软件,可以将可执行文件丢到/usr/local/bin等$PATH下的路径里面,这样就不用再输入绝对路径来使用软件命令了