【转】CentOS 6.5安装pyspider过程记录

原文地址:http://blog.sina.com.cn/s/blog_48c95a190102wczx.html

1、根据pyspider官方推荐的安装方法,使用pip命令直接安装pyspider

# sudo pip install pyspider

Installing collected packages: click, itsdangerous, Werkzeug, Flask, chardet, cssselect, lxml, pyquery, ordereddict, backports.ssl-match-hostname, singledispatch, certifi, backports-abc, tornado, Flask-Login, u-msgpack-python, wsgidav, pyspider

Running setup.py install for click

Running setup.py install for itsdangerous

Running setup.py install for chardet

Running setup.py install for lxml

Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__=‘/tmp/pip-build-rpK3h8/lxml/setup.py‘;exec(compile(getattr(tokenize, ‘open‘, open)(__file__).read().replace(‘\r\n‘, ‘\n‘), __file__, ‘exec‘))" install --record /tmp/pip-mmscE4-record/install-record.txt --single-version-externally-managed --compile:

Building lxml version 3.6.0.

Building without Cython.

ERROR: /bin/sh: xslt-config: command not found

** make sure the development packages of libxml2 and libxslt are installed **

Using build configuration of libxslt

running install

running build

running build_py

creating build

creating build/lib.linux-x86_64-2.6

creating build/lib.linux-x86_64-2.6/lxml

copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/cssselect.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/__init__.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/builder.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/sax.py -> build/lib.linux-x86_64-2.6/lxml

creating build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-2.6/lxml/includes

creating build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/defs.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/builder.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/clean.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/diff.py -> build/lib.linux-x86_64-2.6/lxml/html

creating build/lib.linux-x86_64-2.6/lxml/isoschematron

copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-2.6/lxml/isoschematron

copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-2.6/lxml/includes

creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources

creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/rng

copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/rng

creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl

copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl

copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl

creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

running build_ext

building ‘lxml.etree‘ extension

creating build/temp.linux-x86_64-2.6

creating build/temp.linux-x86_64-2.6/src

creating build/temp.linux-x86_64-2.6/src/lxml

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Isrc/lxml/includes -I/usr/include/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.6/src/lxml/lxml.etree.o -w

src/lxml/lxml.etree.c:82:20: error: Python.h: No such file or directory

src/lxml/lxml.etree.c:84:6: error: #error Python headers needed to compile C extensions, please install development version of Python.

Compile failed: command ‘gcc‘ failed with exit status 1

creating tmp

cc -I/usr/include/libxml2 -c /tmp/xmlXPathInitlSjq1o.c -o tmp/xmlXPathInitlSjq1o.o

/tmp/xmlXPathInitlSjq1o.c:1:26: error: libxml/xpath.h: No such file or directory

*********************************************************************************

Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?

*********************************************************************************

error: command ‘gcc‘ failed with exit status 1

根据错误提示可知,导致安装出错的原因是libxml2和libxslt这两个库没有安装,而且找不到xslt-config这个可执行程序,解决方法如下:

# sudo yum install libxml2  

# sudo yum install libxslt       

# sudo yum install libxslt-devel  

 

2、继续使用pip命令安装pyspider

# sudo pip install pyspider

...

Running setup.py install for lxml

Complete output from command /usr/bin/python -c "import setuptools, tokenize;__file__=‘/tmp/pip-build-EQanqI/lxml/setup.py‘;exec(compile(getattr(tokenize, ‘open‘, open)(__file__).read().replace(‘\r\n‘, ‘\n‘), __file__, ‘exec‘))" install --record /tmp/pip-WzvLSh-record/install-record.txt --single-version-externally-managed --compile:

Building lxml version 3.6.0.

Building without Cython.

Using build configuration of libxslt 1.1.26

Building against libxml2/libxslt in the following directory: /usr/lib64

running install

running build

running build_py

creating build

creating build/lib.linux-x86_64-2.6

creating build/lib.linux-x86_64-2.6/lxml

copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/cssselect.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/__init__.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/builder.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/sax.py -> build/lib.linux-x86_64-2.6/lxml

creating build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-2.6/lxml/includes

creating build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/defs.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/builder.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/clean.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-2.6/lxml/html

copying src/lxml/html/diff.py -> build/lib.linux-x86_64-2.6/lxml/html

creating build/lib.linux-x86_64-2.6/lxml/isoschematron

copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-2.6/lxml/isoschematron

copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-2.6/lxml

copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-2.6/lxml/includes

copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-2.6/lxml/includes

creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources

creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/rng

copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/rng

creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl

copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl

copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl

creating build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-2.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1

running build_ext

building ‘lxml.etree‘ extension

creating build/temp.linux-x86_64-2.6

creating build/temp.linux-x86_64-2.6/src

creating build/temp.linux-x86_64-2.6/src/lxml

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/usr/include/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.6/src/lxml/lxml.etree.o -w

src/lxml/lxml.etree.c:82:20: error: Python.h: No such file or directory

src/lxml/lxml.etree.c:84:6: error: #error Python headers needed to compile C extensions, please install development version of Python.

Compile failed: command ‘gcc‘ failed with exit status 1

creating tmp

cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInitd0Umi6.c -o tmp/xmlXPathInitd0Umi6.o

cc tmp/xmlXPathInitd0Umi6.o -L/usr/lib64 -lxml2 -o a.out

error: command ‘gcc‘ failed with exit status 1

根据错误提示可知,导致安装出错的原因是Python.h: No such file or directory,即找不到Python.h这个头文件,解决方法如下:

# sudo yum install python-devel

至此,再次执行sudo pip install pyspider就可以完成pyspider的安装。

3、启动pyspider,验证安装是否成功

# pyspider

Traceback (most recent call last):

File "/usr/bin/pyspider", line 5, in

from pkg_resources import load_entry_point

File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2655, in

working_set.require(__requires__)

File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 648, in require

needed = self.resolve(parse_requirements(requirements))

File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 546, in resolve

raise DistributionNotFound(req)

pkg_resources.DistributionNotFound: pyquery

根据错误提示可知,在执行pyspider时找不到pyquery,但实际上在安装pyspider时pyquery已经安装了,通过pip freeze也可以看到,导致该问题的原因不详,解决方法如下:

# sudo pip install -U setuptools

4、安装pyspider所需使用的驱动

通过单纯的pyspider命令来启动pyspider时,默认会在当前目录下创建data目录,其中存放了sqlite数据库文件,该情况下无需安装任务数据库connector。如果要以分布式集群的方式来运行pyspider的话,就需要使用mysql、mongodb或postgresql作为后台数据库,使用rabbitmq、redis、beanstalk或kombu作为消息队列。官方推荐的安装方式是采用pip install pyspider[all]命令来安装所有驱动,但该方法一方面会安装一些无用的驱动,另一方面极有可能导致安装失败。因此如果已经确定后台数据库软件和消息队列软件的话,那么选择安装需要的驱动即可。例如采用mongodb作为后台数据库,采用redis作为消息队列的话,就可以通过如下命令安装:

# sudo pip install pymongo

# sudo pip install redis  

 

时间: 2024-10-27 19:16:56

【转】CentOS 6.5安装pyspider过程记录的相关文章

阿里云云服务器 centos 7.4 安装mysql 过程记录

写在前面 1.centos中service指令被systemctl指令所取代,查看各服务的运行状态需要换systemctl来做 2.mysql使用systemctl的方式启动没有成功,是用mysqld --defaults-file=/path --user=mysql指令启动成功的 3.在linux中安装的版本应该是linux generic版本,所以去mysql下载的时候,就选linux generic版本 4.centos中的防火墙不再是iptables,被替换成了firewalld 5.

CentOS 6.5 安装mysql 过程记录

下载的时候一定选对应的版本, el6 还是el7 或者其他版本,不然会出现意向不到的惊喜 比如:我刚开始的时候下载的 el7 版本的 mysql , 然后安装的时候 就会出现: libc.so.6(GLIBC_2.14)(64bit) is needed by MySQL-server-5.5.62-1.el7.x86_64 libc.so.6(GLIBC_2.17)(64bit) is needed by MySQL-server-5.5.62-1.el7.x86_64 然后我根据这个线索,去

redhat6.0 安装ORACLE11GR2过程记录

vawaretools安装 我的是8.0vm 1,vm=>install vmtools 2,会在redhat里出现一个虚拟光驱图标. 3,复制里面的文件到root目录下. 4,解压缩文件 tar -XXXXX 5,打开终端用命令进入相应目录. 6,执行./vmwareXXXXXX,注意./后面没有空格 7,一路回车, 最后安装成功. 挂载光盘 查看磁盘情况如下: [[email protected] ~]# df -h Filesystem            Size  Used Avai

Python 安装pyMySQL过程记录

在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装. PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL. 如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL: $ pip3 install PyMySQL 如果你的系统不支持 pip 命令,可以使用以下方式安装: 1.使用 git 命令下载安装包安装(你也可以手动下载): $ git clone https://github.com/PyMySQL/PyMySQL $ cd

CentOS 7 安装OpenCV过程记录

因一个项目需要用到OpenCV,经过一番探索,最终安装成功,大致步骤如下: 1.在CentOS 7命令行中直接在线安装: yum  install  numpy  opencv* 2.安装完成后进行全盘搜索:find  /  -name   "cv2.so", 我搜出来的路径在:/usr/lib64/python2.7/site-packages/cv2.so 3.输入命令:export  PYTHONPATH=$PYTHONPATH:/usr/lib64/python2.7/site

VirtualBox中安装CentOS7过程记录

在开发过程中常常需要进行一些预研,而有些操作对操作系统可能具有破坏性且是不可恢复的,或者需要在不同的操作系统中去观察结果,虽然在某些场合下Ghost可以解决一部分问题,但是有时候很繁琐,因此在虚拟机中进行测试不失为一种不错的选择.自2011年以来,一直在学习一些有关Linux下的知识,包括Mono+XSP运行ASP.NET程序,搭建Hadoop学习环境.Nginx测试环境等.在虚拟机软件方面先后尝试过VMware.Hyper-V及VirtualBox,最终选择了VirtualBox,理由是开源免

Jitamin在CentOS下面的安装部署过程 (一)

jitamin项目管理软件在CentOS 7.2 上面的安装过程 jitamin这个项目管理软件看起来界面清爽, 功能也还实用, 一直想着在自己的主机上面安装一下, 参照说明文档, 经过多次尝试, 终于成功了. 这里把里面的主要步骤整理一下, 软件有一个英文的安装过程, 但是里面还是有一些坑, 要注意的. jitamin项目在github上面的介绍 链接地址: github-Jitamin 安装步骤 1. 准备一个CentOS的机器 A web server: Nginx, Apache (wi

vim安装 YCM 过程记录

YCM(YouComplateMe) 属于Vim中大神级的插件,提供了类似于巨硬爸爸的VS中的代码补全,但是其安装方式也是比较复杂,因此特意写下一篇记录,记录下我自己如何安装这一插件的过程: 检查自己的vim版本是否在7.9版本之上.是否支持Pthon很幸运我的vim版本是8.0 vim --version #查看vim版本以及是否支持Python 支持的话会在前方出现一个‘+’字符 2.  安装各类可能需要的环境 编译 YouCompleteMe 插件时需要依赖 cmake 构建 Makefi

cygwin 安装openresty过程记录

步骤: 1,cygwin最新版本. 2,cygwin安装模块:gcc, make, openssl, pcre, readline, perl, wget, unzip, sqlite.(应该是全的,在后面编译安装软件的时候会提示缺少的模块或命令,后续可以再装的) 3,cygwin手工下载源码编译安装:luarocks, lua5.1.5, 然后运行luarocks install xx命令安装其他模块(如 lsqlite3)等. 4,ngx_openresty1.7.10.2编译安装.参照(h