解释型和编译型语言
解释型语言:就是计算机逐条去除源码文件的指令,将其转化成机器指令,并执行这个指令的过程.
编译型语言:是指程序在运行前就将所有的源代码一次性转化为机器代码(一般为二进制程序),再运行这个程序的过程.
源码安装前提条件是安装gc工具.
将root变量保存至配置文件中
echo "export PATH=$PATH:/root" >> /etc/rc.local
源码编译安装软件的原理--编写源代码--编译源码生成二进制可执行性文件(也就是程序)--复制该文件到任一PATH变量包含的目录中.
第一步,运行configure命令,并结合必要的参数以生成Makefile;
第二步,运行make命令生成各类模块和主程序;
第三步,运行make install命令将必要的文件复制到安装目录下.
以上三步都需要在对应软件包目录的根目录下运行.
linux系统中一半在/usr/local/src目录里下载源码包
apache 开源web服务器
具有良好的安全性和跨平台,简单,快速,稳定,支持ssl加密,虚拟主机等功能,同时其模块化程度非常高,极易进行功能扩展.
编译Apache
./configure --prefix=/ust/local/apache/ 指定安装目录 --enable-modules=most 启用Apache绝大部分模块.
执行时会有大量的输出产生,包括检查编译环境及,如果出现任意一个错误即会编译失败.编译成功后可以使用make && make install
编译完成使用如下命令启动Apache,并查看一下80端口,确认80端口已经被httpd的进程占用
/usr/local/apache/bin/apachectl start
lsof -i:80
rpm安装软件
RPM分为两类,第一类是二进制安装包(预编译包),将编译好的软件复制到相同的软件环境,(内核版本一致,软硬件运行环境一致)的服务器中,在特定kernel版本下预先编译好软件(编译时使用了大多数常见的编译参数),并将所需要的文件(二进制程序,模块,配置文件等)整体打包,在新主机安装该RPM包时,解压并复制到特定的目录中去.第二类是RPM源码包,当需要自定义参数,自行制作二进制安装包的时候使用
RPM常用参数
安装参数
-i install 安装软件
-v verbose 打印详细信息
-h hash 使用"#"号打印安装进度(需要和-v同时用)
-e erase 删除软件
-U upgrade=<packagefile>+ 升级软件
--replacepakge 如果软件已经安装,则强行安装
--test 安装测试,并不实际安装
--nodeps 忽略软件包的依赖关系强行安装
--force 忽略软件包及文件的冲突
查询参数
-a all 查询所有安装软件
-p package 列出某个安装软件
-l list 列出某个软件包所包含的所有文件
-f file 查询某个文件的所属包
安装软件包
rpm -ivh pm.rpm
测试安装软件包,不做真实安装
rpm -ivh --test pm.rpm
安装软件包,并重新定义安装路径
rpm -ivh --relocate /=.usr/local/pm pm.rpm
强行安装软件包,忽略依赖关系
rpm -ivh pm.rpm --force --nodeps
升级软件包
rpm -Uvh pm.rpm
强行升级软件包,忽略依赖关系
rpm -Uvh pm.rpm --force --nodeps
删除软件包,并忽略依赖关系
rpm -e pm --nodeps 只是包名,不需要跟版本号
导入签名
rpm --import RPM-GPG-KEY
查询某个包是否已经安装
rpm -q pm
查询系统中所有已安装的包
rpm -qa
查询文件属于哪个包
rpm -qf /etc/auto.misc
查询某个已安装软件所包含的所有文件
rpm -ql pm
查询某个包的依赖关系
rpm -qpR pm.rpm
查询某个包的信息
rpm -qpi pm.rpm
删除软件包
rpm -e pm
包依赖:在安装A包之前需要已经安装了B包,其实质是A软件运行时需要依赖B软件提供的功能.
yum安装软件
yellow dog updater,Modified,是一个基于RPM的shell前端包管理器,能够从指定的服务器(一个多个)自动下载并安装或更新软件,删除软件.最大特点是会自动解决依赖关系.
yum命令参数
1.安装操作
install 安装某个包
yum groupinstall 安装某个软件组
2.升级操作
update 更新系统中所有需要更新的包
yum update name 更新某个包
yum check-update 检查当前系统中需要更新的软件包
3.查找操作
yum list 显示软件源中所有可用的包,一般不用
yum list installed 显示系统中已经安装过的包
yum info name 显示某个包的信息
yum groupinfo name 显示某个软件组的信息
yum grouplist 显示软件源宏所有的可用软件组
4.删除操作
yum remove 删除某个包
yum groupremove 删除某个软件组
5.清除操作
yum clean 清楚使用yum所产生的缓存文件
其中options是可选参数,包括帮助参数-h,确认参数-y 静默安装参数-q等;
command参数为需要进行的操作;package参数为具体的包或者软件组 .按照功能分类yum支持安装,升级,查找,删除,清理缓存等操作.
网络yum源
[base]
name=yum_repos
baseurl=http://centos.ustc.edu/centos/6/os/$basearch/
gpgcheck=1
gpgkey=htpp://mirror.centos.org/centos/RPM-KEY-CentOS-6
本地yum源
[base]
命名一个叫"base"的源
name=yum_repos
该源的名字叫做yum_repos
baseurl=file:///mnt/cdrom
该源的http地址,$basearch是一个变量,其值和命令uname -m输出一致
baseurl 支持http,file,ftp三种类型
gpgcheck=0
开启gpg验证,1代表开启,0代表关闭
enabled=1
gpgkey=htpp://mirror.centos.org/centos/RPM-KEY-CentOS-6
定义gpgkey地址
刷新缓存
yum clean all
yum makecache
重建RPM包(了解)
源码包一般是以.src.rpm结尾.如果使用重建rpm包,则在后续任何更新,bug修复都需要重建新的RPM包
1.使用src重建RPM包
创建重建环境
安装rpmbuild
yum install -y rpm-build
rpmbuild --version
yum install gcc* make
快速重建rpm包
rpmbulid --rebuild /PATH/TO/SRPM
wget http://vault.centos.org/5.5/os/SRPMS/name.src.rpm(CentOSsrpm包源)
rpmbuild --rebuild name.src.rpm
yum install libtermcap-devel pam-devel
rpmbuild --rebuild name.src.rpm
2.使用spec重建RPM包
其中spec文件是一个重建RPM包的配置文件,描述了RPM报的相关信息,该动作是将源码包以及一些补丁(patch文件)解压到/usr/src/redhat/SOURCES目录,同时将一个spec文件解压到/usr/src/redhat/SPECS目录中的一个过程,实际上srpm包就是由源码包,补丁和spec文件组成的.
进入/usr/src/redhat/SPECS,使用该spec文件重建RPM包
rpmbuild -ba rsh.spec
spec文件简介
spec文件类似于源码编译时的Makefile文件,是重建rpm包的核心文件.spec文件有一定的模板格式,一般来说分为preample(序言),prep(前期准备),build(编译),install(安装),clean(清理),files(文件列表),changelog(修改日志)等部分.