【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件
除了使用Linux的包管理机制进行软件的安装、更新和卸载,从源代码进行软件的安装也是非常常见的,开源软件提供了源代码包,开发者可以方便的通过源代码进行安装。从源码安装软件一般经过软件配置、编译软件、执行安装3个步骤。
想每天听到小妞的语音播报,想学更多学校里和书本上学不到的IT技术或技能,欢迎关注微信公众号:xiniubook2008。或加微博:我的图书我做主,参加活动,免费获书。
7.3.1 软件配置
由于软件要依赖系统的底层库资源,软件配置主要功能为检查当前系统软硬件环境,确定当前系统是否满足当前软件需要的软件资源。配置命令一般如下:
[root@CentOSvim73]#./congure –prefix=/usr/local/vim73
其中的--prefix 用来指定安装路径,编译好的二进制文件和其他文件将被安装到此处。
不同的软件configure 脚本都提供丰富的选项,在执行完成后,系统会根据执行的选项和系统的配置生成一个编译规则文件Makefile。要查看当前软件配置时支持哪些参数,可以使用./configure --help命令。
7.3.2 编译软件
在配置好编译选项后,系统已经生成了编译软件需要的Makefile,然后利用这些Makefile进行编译。编译软件执行make命令:
[root@CentOSvim73]# make
执行make 命令后make 会根据Makefile 文件来生成目标文件,如二进制程序等。
7.3.3 软件安装
编译完成后,执行make install 命令来安装软件:
[root@CentOSvim73]# #make install
一般情况下安装完成后就可以使用安装的软件了,如没有指定安装路径,一般的软件会备安装在/usr/local下面创建对应的文件夹,部分软件二进制文件会安装在/usr/bin或/usr/local/bin/目录下,对应的头文件会安装到/usr/include,软件帮助文档会安装到/usr/local/share目录下。
如果指定目录,则会在指定目录创建相应的文件夹。安装软件完毕后使用该软件需要使用绝对路径或对环境变量的进行配置,也就是需要把当前软件二进制文件的目录加入到系统的环境变量PATH中。
Vim是一款优秀的文本编辑器,丰富扩展了vi编辑器的很多功能,被广大开发者广泛使用,同类型的编辑软件还有Emacs等。通过示例7-6演示如何通过源代码安装该软件。示例中同时包含了安装软件时遇到的问题及解决方法。
(1)首先查看系统中有无Vim,如有先进行卸载,以免混淆。
【示例7-6】
#查看系统中是否有Vim软件
[root@CentOS~]# vim --version|head
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Apr 112013 03:32:13)
#查看vim文件位置
[root@CentOS~]# which vim
/usr/bin/vim
#查看当前软件属于哪个软件包
[root@CentOS~]# rpm -qf /usr/bin/vim
vim-enhanced-7.2.411-1.8.el6.x86_64
#将当前已安装的软件包卸载掉
[root@CentOS~]# rpm -e vim-enhanced-7.2.411-1.8.el6.x86_64
#查看文件是否还存在
[root@CentOS~]# ls -lhtr /usr/bin/vim
ls: cannot access /usr/bin/vim: No such file ordirectory
(2)经过上面的步骤后,确认系统中已经不存在Vim,下面进行Vim的安装。Vim最新版可以在网站http://www.vim.org/下载。
【示例7-6】续
[root@CentOS~ ]#cd /data/soft
#上传源代码包
[root@CentOSsoft]# rz -bye
rz waiting to receive.
开始 zmodem 传输. 按 Ctrl+C 取消.
Transferring vim-7.3.tar.bz2...
100% 8867 KB 4433 KB/s 00:00:02 0 错误
#将源代码包解压
[root@CentOSsoft]# tar xvf vim-7.3.tar.bz2
vim73/
vim73/Makefile
vim73/src/Makefile
vim73/configure
vim73/src/configure
vim73/src/auto/configure
#部分结果省略
vim73/src/configure.in
vim73/src/
[root@CentOSsoft]# cd vim73
#查看文件列表,部分结果省略
[root@CentOSvim73]# ls
configure README_unix.txt Makefile src
#第1步:进行软件的配置
[root@CentOSvim73]# ./configure
configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
#部分结果省略
checking for tgetent()... configure: error: NOTFOUND!
Youneed to install a terminal library; for example ncurses.
Orspecify the name of the library with --with-tlib.
#某些库不存在,查找到并安装,此时用的是rpm包安装方式
[root@CentOSvim73]# cd -
/cdrom/Packages
[root@CentOSPackages]# ls -l ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
-r--r--r--. 2 root root 657212 Jul 3 2011ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
#安装依赖的包
[root@CentOSPackages]# rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
warning:ncurses-devel-5.7-3.20090208.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature,key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:ncurses-devel ########################################### [100%]
[root@CentOSPackages]# cd -
/data/soft/vim73
#再次进行软件的配置
[root@CentOSvim73]# ./configure --prefix=/usr/local/vim73
configure: creating cache auto/config.cache
checking whether make sets $(MAKE)... yes
#部分结果省略
checking whether we need -D_FORTIFY_SOURCE=1... yes
configure: creating auto/config.status
config.status: creating auto/config.mk
config.status: creating auto/config.h
#第2步:进行软件的编译
[root@CentOSvim73]# make
If there are problems, cd to the src directory andrun make there
cd src && make first
make[1]: Entering directory `/data/soft/vim73/src'
mkdir objects
CC="gcc -Iproto -DHAVE_CONFIG_H " srcdir=. sh ./osdef.sh
gcc -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -D_FORTIFY_SOURCE=1 -o objects/buffer.o buffer.c
#部分结果省略
(3)经过上面的步骤后,Vim软件已经编译完成,下面继续Vim的安装。
【示例7-6】续
#第3步:进行Vim的安装
[root@CentOSvim73]# make install
Startingmake in the src directory.
If thereare problems, cd to the src directory and run make there
cd src&& make install
make[1]:Entering directory `/data/soft/vim73/src'
if test -f/usr/local/vim73/bin/vim; then \
mv -f /usr/local/vim73/bin/vim/usr/local/vim73/bin/vim.rm; \
rm -f /usr/local/vim73/bin/vim.rm; \
fi
cp vim/usr/local/vim73/bin
#部分结果省略
[root@CentOSvim73]# vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Apr 112013 03:32:13)
(4)至此Vim软件安装完成。如需使用,需要使用绝对路径或设置环境变量PATH。
【示例7-6】续
#使用vim发现命令不存在
[root@CentOSvim73]# vim –version
-bash: /usr/local/bin/vim: No such file or directory
[root@CentOSvim73]# cd /usr/local/vim73/
[root@CentOSvim73]# ls
bin share
[root@CentOSvim73]# export PATH=/usr/local/vim73/bin/:$PATH:.
[root@CentOSvim73]# vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Apr 112013 03:32:13)
以上示例演示了如何通过源代码安装指定的软件,安装过程经过软件配置、软件编译和软件安装等步骤。安装软件时如果指定了安装目录没,则需要使用绝对路径或将该软件的二进制文件所在的目录加入到系统变量PATH路径中,以便在不使用绝对路径时仍然可以使用安装的软件。
喜欢可以购买《超容易的Linux系统管理入门书》。目前Linux中国正在举办互动,写书评就能拿书!
【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件的更多相关文章
- 【转载】Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载六)Linux的网络配置
本篇是Linux小白最佳实践第6篇,目的就是让白菜们了解Linux网络是如何配置的.Linux系统在服务器市场占有很大的份额,尤其在互连网时代,要使用计算机就离不开网络. 想每天能听到小妞的语音播报, ...
- Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载五)Linux系统的对话方式
本篇是Linux小白最佳实践第5篇,目的就是让白菜们了解Linux进程之间是如何对话的.之前连载的几篇,在微信上引起了很多的反响,有人也反映图多文字少,感觉没有干货.本篇选了大部分是实战讲解的&quo ...
- 【转载】Linux小白福利:《超容易的Linux系统管理入门书》(三)在虚拟机上安装Linux
本篇是Linux小白最佳实践第3篇,目的就是让白菜们自己动手安装个Linux玩玩.如果你是Linux小白,请务必亲自动手来安装.不想安装多个操作系统的,虚拟机是最佳选择,一台电脑上可以用虚拟机安装7. ...
- 【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实现批量添加用户
Windows添加用户需要至少5个界面,而Linux一条命令就搞定了,这是不是高效人士办公第一法则呢.本文不给你一堆参数和选项,不让你见识教条主义,只给你最实用的代码. 想每天能听到小妞的语音播报,想 ...
- 【转载】干货来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载七)LAMP集成安装
学Linux做程序开发也好,做系统管理也好,做网络管理员也好,做系统运维也好,不会LAMP和LNMP,那就等于连皮毛都不会!本篇是文字版的LAMP集成安装,下次连载我们要介绍LNMP的文字版安装.有喜 ...
- 【转载】茶叶蛋干货!《超容易的Linux系统管理入门书》(连载十)进行动态主机配置DHCP
使用动态主机配置协议DHCP(Dynamic Host Configuration Protocol)则可以避免网络参数变化后一些繁琐的配置,客户端可以从DHCP服务端检索相关信息并完成相关网络配置, ...
- paip.java win程序迁移linux的最佳实践
paip.java win程序迁移linux的最佳实践 1.class load路径的问题... windows哈第一的从calsses目录加载,,而linux优先从jar加载.. 特别的是修理了ja ...
- 【转载】应读者强烈要求给出《超容易的Linux系统管理入门书》一书的主要知识点
刚开始了一篇连载,收到广大Linux爱好者的反馈,非常欣慰.大家对Linux学习感到很迷茫,不知道学哪些内容,如何学习? <超容易的Linux系统管理入门书>一书是腾讯Linux专家在腾讯 ...
- 【转载】应广大群众的要求,今天开始连载《超容易的Linux系统管理入门书》一书
学习Linux容易嘛?我说超容易,你肯定不信.那学习Linux最好的学习方法是什么,就是脑子里面一直提问题,不停的提,时时刻刻提,如果你没有问题,那再容易的学习书你也看不懂. <超容易的Linu ...
随机推荐
- 根据字符串创建FTP本地目录 并按照日期建立子目录返回路径
/** * 根据字符串创建FTP本地目录 并按照日期建立子目录返回 * @param path * @return */ private String getFolder(String path) { ...
- iOS开发——UI_swift篇&TableView自定义聊天界面
TableView自定义聊天界面 1,下面是一个放微信聊天界面的消息展示列表,实现的功能有: (1)消息可以是文本消息也可以是图片消息 (2)消息背景为气泡状图片,同时消息气泡可根据内容自适应大小 ...
- 从user 登陆開始
首先.我们来看看我们的需求,看看需求里有没有你感兴趣的知识点: 用户登陆: 实现用户从网页登陆界面输入正确的username.password及验证码后跳转到一个页面显示登陆成功 要求: 1. 数据 ...
- c语言下的通用数据库接口(之sqlite消化,模拟c#,java的反射)
在java/C#中都有类的反射,而C下是不存在的. java/C#中能够把表设计成类.而C下仅仅能设计成结构体形式. 在java中有hibernate来操作数据库,可是在C以下怎么设计好呢? 如今,我 ...
- Jordan Lecture Note-10: Kernel Principal Components Analysis (KPCA).
Kernel Principal Components Analysis PCA实际上就是对原坐标进行正交变换,使得变换后的坐标之间相互无关,并且尽可能保留多的信息.但PCA所做的是线性变换,对于某些 ...
- Helpers\RainCaptcha
Helpers\RainCaptcha This class can validate CAPTCHA images with RainCaptcha. It can generate an URL ...
- 炼数成金hadoop视频干货05
视频地址:http://pan.baidu.com/s/1dDEgKwD 这一节是讲师助教带着动手操作写简单的开发环境的部署和两个实例 开发环境的部署:http://www.cnblogs.com/a ...
- 1002 GTY's birthday gift
GTY's birthday gift Time Limit ...
- 8张图带你理解Java整个只是网络(转载)
8张图带你理解Java整个只是网络 一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选.如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟. 1.字符 ...
- ORM之PetaPoco错误--VS中NUGet程序包管理安装PetaPoco
一般在Vs中使用PetaPoco的时候都是使用NuGet程序包管理来安装PetaPoco的,如果你在安装PetaPoco前设置了ConnectionString,那么PetaPoco中的T4模板会自动 ...