最近开始在Linux下编程了。以前都是在Windows下开发一些应用程序,不过对自己所追求的有差距:即是Windows下面什么都是“密封”的,而在Linux下面则是透明的,你能看到一切。
开始第一个项目是OceanBase,海量结构化数据的分布式解决方案。分布式那块我一向感兴趣,因为高效高可靠、海量数据、负载均衡、网络编程、存储等方面的一系列有趣的话题。现在还处在看文档和看一些简单的代码,shell脚本和C/C++代码。尤其是shell,即是速度没有C/C++快速,但是简单、灵活的语句就能创造出需要很多代码才能写出功能,给我很大震撼(之前感受还没有那么深)。
转入正题,这几天主要看了一下几个方面:
1. 软件包管理。主要包括了三个方面:二进制软件包管理(RPM、YUM)、源代码包安装、脚本安装。
a) RPM安装。首先是rpm包的一个例子,sudo-1.7.2p1-5.e15.i386.rpm。其中软件名(sudo),版本号(1.7.2p1),发行号(5.e15)和硬件平台(i386)。
l 软件卸载: #rpm –e sudo 如果其他软件包有依赖关系,卸载时会产生提示信息,可用 - -nodeps强行卸载。
l 软件安装: #rpm –ivh sudo-1.7.2p1.e15.i386.rpm
l 查询软件是否安装:#rpm –q sudo 或者 #rpm –qa |grep samba
l 软件升级: #rpm –Uvh sudo-1.8.0p1-5.e15.i386.rpm
l Rpm的其他选项:- -excludedocs 不安装软件包中的文档文件;- -prefix PATH 将软件包安装到有PATH指定的路径下;- -test 只对安装进行测试,并不实际安装;- -replacepkgs 覆盖安装该软件包;对软件的未解决依赖关系(即装A软件,但需要先装B软件才能装A软件),可以强制安装使用 - -nodeps,不过十有八九软件会不能运行。
b) YUM安装。
l 安装:#yum install sudo
l 检测升级:#yum check-update sudo
l 升级:#yum update sudo
l 软件包查询:yum list
l 软件包信息:yum info sudo
l 卸载:yum remove sudo
l 帮助:yum –help、 man yum
c) RPM 和 YUM 比较:
l yum 自动解决软件包依赖关系
l yum 方便的软件包升级
l rpm 有些命令可以更方便更快捷:
1. 查询文件隶属的软件包: rpm –qf
2. 查询软件包信息: rpm –qi, rpm –qip
3. 查询软件包安装文件: rpm –ql、 rpm –qlp
4. 查询软件包帮助文档: rpm –qd
5. 查询软件包配置文件: rpm –qc
6. 对软件的校验: rpm –V 软件名称
l 5 文件的MD5校验值
l S 文件的大小
l L 链接文件
l T 文件的创建时间
l D 设备文件
l U 文件的用户
l G 文件的用户组
l M 文件的权限
d) 脚本安装。
l 安装webmin
l #tar –xzvf webmin-1.530.tar.gz
l #cd webmin-1.530
l #vi README
l #./setup.sh
l 软件下载地址:http://www.webmin.com
e) 源代码包安装
l #tar -xzvf proftpd-1.3.3d.tar.gz
l #cd proftpd-1.3.3d
l #./configure --prefix=/usr/local/proftpd(配置安装路径)
l #make(编译)
l #make install(安装)
l 软件下载地址:http://www.proftpd.org