编译安装

There are 5 entries for the tag 编译安装

CentOS下编译安装Python2.7.6

MitchellChu 2014-05-07 Unix & Linux

CentOS下面Python在升级到2.7.6的时候,没有找到安装包直接安装,只能通过源代码编译的方式来安装Python 2.7.6版本。这篇是编译和安装Python2.7.6的过程记录。 CentOS系统中安装了development tools。要编译安装Python,执行下面代码: $ pushd /usr/local/src $ sudo mkdir python $ sudo chown $USER python $ cd python $ wget https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz $ tar zxvf Python-2.7.6.tgz $ cd Python-2.7.6 $ ./configure --prefix=/usr/local/python-2.7.6 && make $ sudo make install 代码过程: 1. 在/usr/local/src创建python文件夹,并将Python文件夹所有者设置为当前用户(非root) 2. 进入创建的python目录下,从官方网站上下载python2.7.6源代码包。 3. (非必须)如果要校验包的一致性,可以在官方网站上下载sig文件,并通过PGP校验文件,也可以通过官网提供的MD5校验下载的压缩包。更多关于校验的信息请参考Linux下校验文件的完整性(MD5,SHA1,PGP)。本代码忽略了此过程。 4. 解压压缩包到当前目录,并进入Python-2.7.6目录 5. 配置python并编译。这步只是用了--prefix参数指示安装路径。 6. 安装Python [也可使用altinstall的安装方式,这样文件末尾会带上版本号。updated: 2015-07-13] 上面是在Python编译安装顺利的情况下的大体流程,但是我在编译的时候,Python出现了下面的提示信息: Python build finished, but the necessary bits to build these modules were not found: _bsddb _sqlite3 _ssl _tkinter bsddb185 bz2 ...

CentOS(Linux)下编译安装Redis注意事项

MitchellChu 2014-04-28 Unix & Linux

在CentOS(Linux)下编译安装Redis(V2.8.7)之后,总结的注意事项如下: 下载安装Redis: $ wget http://download.redis.io/releases/redis-2.8.7.tar.gz $ tar xzf redis-2.8.7.tar.gz $ cd redis-2.8.7 $ make TIPS: 可先到官网下载Redis文件,同时可以查看官网的编译安装方法(传送门)。 在Redis根目录下,直接make make成功后,如果需要make test,则需要配置TCL8.5/TCL8.6来进行测试 TCL8.6非默认安装的时候(CentOS版本偏低),一定要在PATH的路径中创建文件连接到tclsh8.6,同时注意,文件名称必须是tclsh8.5/tclsh8.6,因为在make test的时候,会使用which查找8.5或者8.6版本的tcl 安装:直接make install,默认安装在/usr/local/bin下,如果需要设置自定义路径,用make PREFIX=/usr/local/redis install来安装 安装后,默认是没有配置文件的,需要配置的话,在安装成功后可以使用utils里面的install_server.sh来配置服务器.    install_server.sh里面有很多bug,如果不修改你将会发现/etc/init.d/redis_***是无法正常使用的——里面的配置文件有很多\n,未被转义.      line 163,177: if [ !`which chkconfig` ]; then 中 !应该和`which chkconfig`之间有个空格没有出现      line 165: echo 之后应该需要一个-e参数,表示允许使用转义字符. 配置: 为了防止内存爆满导致系统崩溃,需要设置/etc/redis/*.cnf中的maxmemory 防止报错,可以调整内存分配策略 /etc/sysctl.conf 这个是Redis日志中可以看到的建议: 添加vm.overcommit_memory=1保存,并执行:sysctl vm.overcommit_memory=1使之生效 /proc/sys/vm/overcommit_memory,这个里面就是overcommit_memory值,这个可以被上面的设置更新. ...

CentOS下编译安装MySQL5.6.16备忘

MitchellChu 2014-04-28 Unix & Linux

在CentOS6.4下编译MySQL5.6.16版本,直接编译MySQL源代码会出现一些问题,因此在这里备忘一下编译方法及修改事项。MySQL的编译过程如下: $ sed -i "/ADD_SUBDIRECTORY(sql\/share)/d" CMakeLists.txt && $ sed -i "s/ADD_SUBDIRECTORY(libmysql)/&\\nADD_SUBDIRECTORY(sql\/share)/" CMakeLists.txt && $ sed -i "s@data/test@\${INSTALL_MYSQLSHAREDIR}@g" sql/CMakeLists.txt && $ sed -i "s@data/mysql@\${INSTALL_MYSQLTESTDIR}@g" sql/CMakeLists.txt && $ sed -i "s/srv_buf_size/srv_sort_buf_size/" storage/innobase/row/row0log.cc && $ mkdir build && $ cd build && $ cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.16 \ -DINSTALL_MYSQLDATADIR=/srv/mysql ...

CentOS6.4下Emacs24.3的编译安装备忘

MitchellChu 2014-04-27 Unix & Linux

Emacs是一个具有强大扩展性的文本编辑器(说IDE或许更准确点),在CentOS中,你可以直接通过yum来安装。出于对新版本的热衷,选择了对Emacs24.3进行了编译安装。以下是Mitchell的安装过程,关于编译安装的一些介绍可以参看前一篇编译安装介绍。 首先,自然是要获取到Emacs的源代码,源代码在Emacs的官方网站上可以找到下载的地方(其中一个地址);第二个就是依赖了,Emacs 24.3版本需要依赖autoconf(2.65或更新),makeinfo(4.7或更新),makeinfo在Texinfo里面。 编译过程是反向的,先将依赖,编译安装完成之后,再编译安装Emacs本身。 autoconf的编译安装,由于CentOS本身自带autoconf,但是autoconf的版本不符合要求,因此先删除自带的autoconf。 yum erase autoconf 用这种方法移除后在更新,涉及到依赖包:automake,intltool,libtool。我们还需要将这些新版本安装回来。安装automake,intltool,libtool的过程简要备录如下: automake安装: $ wget http://ftp.gnu.org/gnu/automake/automake-1.14.1.tar.xz $ ./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.14.1 $ make $ sed -i "s:./configure:LEXLIB=/usr/lib/libfl.a &:" t/lex-{clean,depend}-cxx.sh $ make -j4 check TIPS:这个后缀的文件名不太常见,解压方法可以参考:Linux下的压缩解压命令汇总 make check的信息如下:    ============================================================================ Testsuite summary for GNU Automake 1.14.1 ============================================================================ # TOTAL: 2761 # PASS: 2455 # SKIP: 266 # XFAIL: 40 # FAIL: 0 # XPASS: 0 # ERROR: 0 ============================================================================ 这表示成功,可以安装 # make install libtool安装: $ wget http://mirror.hust.edu.cn/gnu/libtool/libtool-2.4.tar.xz $ wget http://mirror.hust.edu.cn/gnu/libtool/libtool-2.4.tar.xz.sig $ tar xvf libtool-2.4.tar.xz $ cd libtool-2.4/ $ ./configure --prefix=/usr $ make $ make check # make install intltool安装: $ wget http://launchpad.net/intltool/trunk/0.50.2/+download/intltool-0.50.2.tar.gz $ ./configure --prefix=/usr && $ make # make install && ...

CentOS/Linux下软件的编译安装介绍及注意事项

MitchellChu 2014-04-26 Unix & Linux

CentOS作为服务器,要求软件的稳定性比较高,因此发布的软件一般都比较老,然而,有的时候我们需要某些软件新的功能,这种时候如果没有可用的安装包,就需要使用软件提供的源代码,在CentOS下进行编译安装。编译安装顾名思义就是需要先进行对软件的源代码进行编译,然后安装编译之后的软件文件。在CentOS/Linux下编译软件的源代码,一般会涉及编译器,关联库等。 编译器: 在CentOS下开发软件的语言种类繁多,需要根据需要编译的软件的源代码选择对应的编译器。在CentOS下,最常用的有两种:C语言的可以使用gcc,C++可以使用g++。GCC(GNU Compiler Collection,GNU编译器套件)已经扩展成可以处理C,C++,Ada,Java,Objective-C,Object-C++,Go,Fortran的编译器。也就是说,一般情况下,在拥有gcc编译器的前提下,CentOS下你已经可以编译大部分应用程序。如果你仅仅需要编译程序,通过yum install 来安装gcc和g++吧。—— 当然,一般仅有这两个编译器是远远不够的。 关联库: 前面说了,有了对应的编译器,理论上是可以完成对软件的编译。然而,在CentOS/Linux下,大部分的软件都有对其他库的依赖,这就需要在编译的时候,将关联的库包含进来,才能顺利的完成软件的编译。哪怕是同一个库,在不同的软件编译中,可能依赖的版本也会有所不同,因此,在实际编译的过程需要谨慎选择依赖库的版本。关联库可以通过编译器的参数来进行设置。 编译工具: 关联的库可以通过编译器来进行添加,但这种方法一旦在软件依赖比较多;需要根据系统环境进行参数筛选依赖库的时候,编译者为了要顺利在某一个特定的Linux发行版本下编译成功软件,就需要对该软件在当前Linux版本下的相关信息了解清楚。在繁多的软件编译安装列表中,要对每一个软件在每一个版本的Linux/CentOS下的安装信息都掌握,对编译者的要求就非常高了,无形之中会加重软件的编译安装成本,为了应对这种情况,Linux下提供了configure,make,CMake,automake等,这可以让软件的发布者提前将特定版本下编译的信息通过配置文件的形式提前固定下来。编译的时候,直接读取配置文件中的信息,找到对应的配置项,进行配置校验即可。要了解更多可以了解下MakeFile的相关信息。 系统编译相关: 1. 在CentOS中,如果要进行对软件的编译安装,我们一般需要安装:Development Tools yum groupinstall "Development Tools" 如果你编译安装的软件需要图形界面的话,你可能还需要安装X Software Development yum groupinstall "X Software Development" 要是你编译安装的软件比较旧,那可能就还需要Legacy Software Development了 yum groupinstall "Legacy Software Development" 可以根据自己的实际情况对上面的开发环境进行配置,Mitchell一般在CentOS上只编译最新的,无图形界面的软件,这种情况下,Development Tools对我来说已经就足够了。 如果没有安装Development Tools,而只安装gcc,g++这类的编译器,在实际编译的时候,你将会发现编译工作进展是痛苦无比的,这是因为,你只安装了特定的编译器,而关联的库文件缺失。在编译自己的小程序也许没有问题,但涉及到库关联的时候,问题就来了。 2. 关于系统时间,开始Mitchell本人一直觉得,系统时间和编译是半毛钱没有的事情,然而在一次编译的过程中发现(特别是在使用虚拟机的时候,时间观念淡薄啊),./configure出来的makefile,一直会报错: MakeFile is too old.  这个时候,不要吝惜那分分钟的时间,赶紧先把系统时间修改成正确的时间吧(时区)。 更新系统时间: date 'current-date' 更新硬件时间: #使用hwclock hwclock -w #使用clock clock -w 3. 安装路径,一般使用--prefix来进行设置,这样便于将来维护。    Linux现在还是菜鸟一枚,暂时只想到这么些,如果还有更多或不对的地方,欢迎指正补充。

关于博主

  一枚成分复杂的网络IT分子,属于互联网行业分类中的杂牌军。