rpm yum 编译安装
2017-11-20 本文已影响45人
Miracle001
rpm yum 编译安装
软件运行环境
ABI
Windows与Linux不兼容:ELF(linux) PE(windows) 文件头部不同 魔数
库级别虚拟化:Linux(WINE) windows(Cywin)
API
POSIX(Portable OS) linux——windows,均可用
调用现有的库——>标准接口:API
/usr/include/——>".h"文件(头文件)
程序源代码——>预处理——>编译——>汇编——>链接
静态编译 .a 程序与所调用的库在一起(打包成整体)——>不考虑依赖性
动态编译 .so 程序——>独立<——调用库 考虑依赖性
编译过程
C语言
".c/.h"——>预处理gcc——>文本文件.i——>编译gcc——>汇编语言.a(目标代码)——>汇编as——>二进制.o 静态库.a——>ld 链接——>a.out 可执行的二进制
JAVA
支持跨平台,JAVA虚拟机class
开发语言
系统升级:c c++
应用级:java Python go php
软件包的基础
二进制程序组成:二进制文件 库文件 配置文件 帮助文件
源代码命名方式:name-Version.tar.gz|bz2|xz Version:major(主版本号),minor(此版本号 功能),release(发行版本)
Linux:4.11.4.tar.xz
rpm包命名方式:
Application-VERSION-release.src.rpm
bash-4.2.46-19.e17.x86-64.rpm
Version:4.2.46 源码开发人员增加
19.e17 编译人员增加
x86-64 cpu架构:x86-64(64位兼容) noarch(无要求) x-84(32位)
arch 平台
uname -r 版本号
包之间可能存在依赖关系、循环关系
解决依赖关系的工具
yum
apt-get(deb...) zypper(suse...) dnf(rpm-)
库文件
查看二进制程序所依赖的库文件 ldd /bin/ls
ldd /path/to/binary_file
显示本机已缓存的所有可用库文件名及文件路径的映射关系
/sbin/ldconfig -p /sbin/可有可无
读取的配置文件,重新生成缓存
配置文件 /etc/ld.so.conf,/etc/ld.so.conf.d/*.conf
缓存文件 /etc/ld.so.cache
zlib-devel-1.2.7-17.e17.x86-64.rpm
utils(工具),devel(开发),lib(库) 可按需安装
程序包管理器
功能
将编译好的应用程序的各组成文件打包成一个或几个程序包文件,从而方便快捷的实现程序包的安装、卸载、查询、升级、校验......
包文件的组成
rpm包内的文件清单
rpm的元数据
安装或卸载时运行的脚本
数据库
/var/lib/rpm
程序包名称及版本
依赖关系,功能说明
安装后生成的各文件路径及校验码信息
rpm yum dnf
获取程序包的途径
系统光盘或官方服务器
CentOS 镜像:
https://www.centos.org/download/
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
项目官方站点
第三方组织:
Fedora-EPEL: :
Extra Packages for Enterprise Linux
Rpmforge:RHEL 推荐,包很全
搜索引擎 :
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
https://sourceforge.net/
自己制作
注意:第三方包建议要检查其合法性来源 合法性,
ping/dig www.centos.org
rpm包管理
包安装
rpm -ivh PACKAGE_FILE ...
i install
v 过程
h 以数字显示程序包管理执行进度
[install-options]
--test:测试安装,但不真正执行安装,即dry run模式
--nodeps:忽略依赖关系 ab两个包,相互依赖,利用此选项,可以先安装a,再安装b
--replacepkgs | replacefiles 可能导致新生成的配置文件被覆盖
--nosignature 不检查来源合法性
--nodigest 不检查包完整性
--noscripts 不执行程序包脚本
--ignoreos centos6的包装到centos7上
%pre: 安装前脚本; --nopre
%post: 安装后脚本; --nopost
%preun: 卸载前脚本; --nopreun
%postun: 卸载后脚本; --nopostun
安装a包,提示装b包,即b包是基础,先装b包;删除a报错,则应该先删除b,再删除a;
/testapp/有很多功能,只用其中的一部分,拆包;
testapp-version-arch.rpm 主包
testapp-devel-version-arch.rpm 支包
先装主包,再装支包
包升级
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
upgrade :
安装有旧版程序包,则“升级”
如果不存在旧版程序包,则“安装”
freshen :
安装有旧版程序包,则“升级”
如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...
--oldpackage :降级
--force: 强制安装
注意:
(1)不要对内核做升级操作;Linux 支持多内核版本并存,因此,对直接安装新版本内核
(2)如果原程序包的配置文件安装后曾被修改,升级时,新版本的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew) 后保留
包查询
rpm {-q|--query} [select-options] [query-options]
[select-options]
-a:所有包
-f:查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作
--whatprovides CAPABILITY :查询指定的CAPABILITY由哪个包所提供
--whatrequires CAPABILITY :查询指定的CAPABILITY被哪个包所依赖
rpm2cpio 包文件|cpio –itv 预览包内文件
rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件
[query-options]
--changelog :查询rpm包的changelog(修改日志,bug修复)
-c:查询程序的配置文件
-d:查询程序的文档
-i:information
-l:查看指定的程序包安装后生成的所有文件
--scripts:程序包自带的脚本
--provides:列出指定程序包所提供的CAPABILITY
-R:查询指定的程序包所依赖的CAPABILITY
常用查询用法:
-qi PACKAGE,
-qf FILE,
-qc PACKAGE,
-ql PACKAGE,
-qd PACKAGE
-qpi PACKAGE_FILE,
-qpl PACKAGE_FILE, ...
-qa
包卸载:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...
包校验
rpm {-V|--verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P capabilities differ
rpm -Va 查看所有包是否被修改
本机文件和安装前包文件的校验
包来源合法性验正及完整性验正
完整性验正:SHA256
来源合法性验正:RSA
公钥加密
对称加密:加密、解密使用同一密钥
非对称加密:密钥是成对儿的
public key: 公钥,公开所有人
secret key: 私钥,不能公开
导入所需要公钥
rpm -K|checksig rpmfile 检查包的完整性和签名 (Not OK未导入公钥,不正规)
rpm --import / etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7 发行版光盘提供: RPM-GPG-KEY-CentOS-7
rpm -qa “gpg-pubkey*” 结果:gpg-pubkey-f4a80eb5-53a7ff4b
rpm -qi "gpg-pubkey-f4a80eb5-53a7ff4b"
rpm 数据库
数据库重建:
/var/lib/rpm
rpm {--initdb|--rebuilddb}
initdb:初始化
如果,事先不存在数据库,则新建之
否则 ,不执行任何操作
rebuilddb:重建已 安装的包头的数据库 索引目录
yum
CentOS: yum, dnf
YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具
yum repository: yum repo,存储了众多rpm 包,以及包的相关的元数据文件(放置于特定目录repodata下)
文件服务器:
http://
https://
ftp://
file://
yum 客户端配置文件:
/etc/yum.conf :为所有仓库提供公共配置
/etc/yum.repos.d/*.repo :为仓库的指向提供配置
vim *.repo,对后缀要求
备份操作
cd /etc/yum.repos.d/
mkdir backup
mv *.repo backup/
仓库指向的定义:
[repositoryID] #仓库名称,不能有空格
name=Some name for this repository #描述
baseurl=url1://path/to/repository/ #仓库路径,repodata文件夹的父目录
url2://path/to/repository/
enabled={1|0} 1表示启用
gpgcheck={1|0} #不写,默认1,不导入key,会是warning
gpgkey=URL #要是路径,手工写进脚本,不用命令行输入,--input
#enablegroups={1|0}
#failovermethod={roundrobin|priority}
roundrobin:意为随机挑选,默认值
priority:按顺序访问
#cost= 默认为1000
cost值越小,优先使用
[base]
cost=1000
[os7]
cost=50 优先使用
yum的repo配置文件中可用的变量:(统一格式,标准化管理)
$releasever:当前OS的发行版的主版本号 (6:centos 6,os发行版主版本号)
$arch:平台,i386,i486,i586,x86_64等
$basearch:基础平台;i386, x86_64 (cpu架构)
$YUM0-$YUM9: 自定义变量
实例:
http://server/centos/$releasever/$basearch/
http://server/centos/7/x86_64
http://server/centos/6/i384
yum源
阿里云repo文件:
http://mirrors.aliyun.com/repo/
CentOS系统的yum源
阿里云:
https://mirrors.aliyun.com/centos/$releasever/os/x86_64/
教学环境:
http://172.16.0.1/cobbler/ks_mirror/$releasever/
EPEL的yum源:
阿里云:
https://mirrors.aliyun.com/epel/$releasever/x86_64
教学环境:
http://172.16.0.1/fedora-epel/$releasever/x86_64/
yum-config-manager
生成172.16.0.1_cobbler_ks_mirror_CentOS-X-x86_64_.repo
yum-config-manager --add-repo=http://172.16.0.1/cobbler/ks_mirror/7/ 命令直接生成yum仓库
yum-config-manager --disable “仓库名" 禁用仓库
yum-config-manager --enable “仓库名” 启用仓库
yum命令
yum 命令的用法:
yum [options] [command] [package ...]
显示仓库列表:
yum repolist [all|enabled|disabled]
显示程序包:
yum list |less
@ 已装好
@anaconda 安装向导
os7 未安装
installed rpm命令安装的
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1][...]
安装程序包:
yum install package1 [package2] [...]
yum reinstall package1 [package2] [...] ( 重新安装)
升级程序包:
yum update [package1] [package2] [...]
生产环境中,不建议升级,最好重新安装
6.8的系统 6.9的yum源 update全部升级
yum update 全部升级
yum update rpmfile 单个升级
yum downgrade package1 [package2] [...] ( 降级)
检查可用升级:
yum check-update
卸载程序包:
yum remove | erase package1 [package2] [...] 依赖的包未卸载
查看程序包information:
yum info [...]
查看指定的特性(可以是某文件)是由哪个程序包所提供:
yum provides | whatprovides feature1 [feature2][...]
yum provides tree/ftp
清理本地缓存:
清除/var/cache/yum/$basearch/$releasever 缓存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
构建缓存:
yum makecache
搜索:
yum search string1 [string2] [...]
以指定的关键字搜索程序包名及summary信息
查看指定包所依赖的capabilities:
yum deplist package1 [package2] [...]
查看yum事务历史:
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6 取消安装(把依赖的包也卸载掉)
yum history redo 6 重新安装
日志:
/var/log/yum.log 记录缓存
安装及升级本地程序包:
yum localinstall rpmfile1 [rpmfile2] [...]
( 用install 替代)
yum localupdate rpmfile1 [rpmfile2] [...]
( 用update 替代)
包组管理的相关命令:
yum groupinstall group1 [group2] [...]
yum groupupdate group1 [group2] [...]
yum grouplist [hidden] [groupwildcard] [...]
yum groupremove group1 [group2] [...]
yum groupinfo group1 [...]
yum groupinfo "Development Tools" 查看包组信息
无符号 已经安装到系统上,并非随包组安装,可能随yum安装
= 已经安装到系统上,随包组一起安装
+ 没有安装 随包组一块装
- 没有安装 不随包组一块装 可能因为安装后自己卸载了
yum grouplist 安装前查看包的名字
开发工具包组必须安装,编译安装使用
yum groupinstall "Development tools"
yum的命令行选项:
--nogpgcheck:禁止进行gpg check,不用导入公钥,优先级高于配置文件中的gpgcheck=1
yum install --nogpgcheck tree
-y:自动回答为“yes” 不用进行交互式操作
-q:静默模式
--disablerepo=repoidglob:临时禁用此处指定的repo
--enablerepo=repoidglob:临时启用此处指定的repo
--noplugins:禁用所有插件
系统光盘yum仓库
系统安装光盘作为本地yum仓库:
(1)挂载光盘至某目录,例如/media/cdrom
# mount /dev/cdrom /media/cdrom
(2)创建配置文件
[CentOS7]
name=
baseurl=
gpgcheck=
enabled=
创建yum 仓库:
createrepo [options] <directory>
实验
网络yum源
神奇的目录/misc/cd 如何挂载操作
df
centos6 ...media/centos6.9..
centos7.3 run/media/centos7.3
root登录才可以挂载光盘
普通用户挂载光盘
mount /dev/sr0 /mnt
ls /misc/cd 看到光盘挂载成功 centos6.9
rpm -i /run/media/root/centos7.../Packages/autofs 系统已经安装则不用
systemctl enable autofs 开机自动启动
****systemctl start autofs
df
ls /misc/cd
cd /misc/cd 进入访问,即挂载
ls /misc/cd/Packages/ 显示挂载信息
1 准备光盘、包、元数据。
2 网络服务 http(s) ftp
rpm -ivh /mnt/Packages/vsftpd... 或者 yum -y install vsftpd
rpm -ql vsftpd
服务脚本名称
.service后缀文件 7
/etc/rc.d/init.d/vsftpd 6
netstat -ntl 查看ftp21端口
启动服务
systemctl start vsftpd.service 7
service vsftpd start 6
开机启动服务
systemctl enable vsftpd 7
chkconfig vsftpd on 6
/var/ftp 存放ftp共享资源
3 停止防火墙服务
systemctl stop firewalld.service 马上禁用 7
systemctl disable firewalld.service 下次开机禁用 7
iptables -vnl
service iptables stop 开机禁用 6
chkconfig iptables off 马上禁用 6
4 复制元数据repodate和rpm包文件
cd /var/ftp/pub
mkdir 7 6
cd 7
cp -r /mnt/repodate/ .
cp -r /mnt/Packages/ . 拷贝一部分即可
换光盘 右下角 连接、设置
cd /var/ftp/6
cp -r /mnt/repodate/ .
cp -r /mnt/Packages/ .
5 客户端配置文件
vim centos.repo
[ftpbase]
name=ftp server repo
baseurl=ftp://192.168.227.135/pub/$releasever
gpgcheck=0
其他的库禁用 enable=0
然后在电脑文件夹搜索栏里输入“ftp://192.168.227.135/pub”即可查到内容
上下这两个实验放在一起操做
实现第三方软件仓库
1.准备第三方软件RPM
mkdir /var/ftp/pub/app 这个路径就是repodata的父目录
cp /misc/cd/Packsges/*.rpm /var/ftp/pub/app
2.创建元数据
which createrepo
rpm -qf ‘`which createrepo`’
yum install createrepo -y
createrepo /var/ftp/pub/app 在 app下生成repodata文件夹
3.客户端的配置
[app]
basename=the third app
baseurl=ftp://192.168.227.135/pub/app
gpgcheck=0
4.测试
yum repolist
yum clean all
yum install app
在“我的电脑”的文件夹里搜索ftp://192.168.227.135/pub/查看是否生成app目录
移动/lib64/libc.so.6的位置,命令不能使用,排除此故障
centos6
重启——>进度条:ESC 按一下——>CD-ROM(光盘)——>Rescue模式——>OK——>OK——>NO——>continue——>OK——>OK——>OK——>进入shell(命令窗口)
continue步骤时,显示一句话:
df
/dev/sda1 /boot /mnt/sysimage/boot
/dev/sda2 / /mnt/sysimage/
chroot /mnt/sysimage 切根,救援模式路径变为正常情况的路径
mv /root/libc.so.6 /lib64/
exit 两次
reboot
centos7
mv /lib64/libc.so.6 /root
重启——>进度条:ESC 按一下——>CD-ROM(光盘)——>troubleshooting——>Rescue模式——>1,回车——>c(继续)——>回车,开启shell
chroot /mnt/sysimage 命令不管用,不能切掉根
mv /mnt/sysimage/root/libc.so.6 /mnt/sysimage/lib64
exit
centos6和centos7下,删除/lib64/libc.so.6,并恢复之
把光盘里的libc.so.6复制到/mnt/sysimage/lib64/下
救援模式,进入命令行操作
chroot /mnt/sysimage 不管用
centos7
cd lib64
cp libc.so.6 /mnt/sysimage/lib64
exit
centos6
cd lib64
cp libc.so.6 /mnt/sysimage/lib64
exit
选择reboot,重启即可
cpu架构有几种
centos7
ls /mnt/Packages/*.rpm|rev|cut -d. -f2|rev|sort|uniq -c
ls /mnt/Packages/*.rpm|egrep -o "[^.]+\.rpm"|cut -d. -f1|sort|uniq -c
删除rpm,并恢复
进入救援模式——>
df——>mkdir /mnt/cdrom/——>
mount /dev/sr0 /mnt/cdrom/——>
cd /mnt/cdrom/Packages/——>
rpm -ivh rpm-tab键补全 --root=/mnt/sysimage --force——>
分类查询是否成功安装rpm包:
centos6.9:ls /mnt/sysimage/bin/rpm——>有,则成功,exit即可;
centos7.3:ls /mnt/sysimage/usr/bin/rpm——>有,则成功,exit即可。
删除tree,并恢复
centos7
rm -rf /usr/bin/tree
rpm -q tree &> /dev/null || rpm -ivh /mnt/Packages/tree-Tab键补全 --force 可以分两步操作
卸载内核,并恢复之
centos6
cat /boot/grub/grub.conf 查看使用的内核是第几个
default=0 默认第一个title
内核在线不能切换
vim /boot/grub/grub.conf,更改default,reboot才可以切换至其他内核
rpm -e kernel-2.6.32-696.el6.x86_64 --nodeps 卸载内核
进入救援模式
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
ls /mnt/cdrom/Packages 所有包都在这里
rpm -ivh /mnt/cdrom/Packages/kernel-... --root=/mnt/sysimage
/usr/bin/Java属于哪个包
which java
ll /usr/bin/Java
ll /etc/alternatives/java
centos6,7配置本地光盘当做yum源,并安装开发包组
centos7
光盘做yum源,需要先挂载
mount /dev/sr0 /mnt
vim centos.repo
[base]
name=base
baseurl=file:///mnt
enabled=1
gpgcheck=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7
[epel]
name=epel
baseurl=http://172.16.0.1/fedora-epel/7/x86_64/ 教学环境(里面含有光盘没有的包,在实际环境中不能使用)
gpgkey=file:///root/rpm-gpg-key-epel-7(本地文件,网上下载,传到linux里)
yum -y install gcc,httpd,samba
ls /mnt/Packages/*.rpm |wc -l 9363
yum repolist 9363 包数量相同
centos6
使用原文件即可安装gcc,httpd,samba
ls /misc/cd/Packages/*.rpm |wc -l 3240(rpm包在此盘1611里,第一张盘存放的是元数据)
yum repolist 7508 报数量不同
reset.sh初始化脚本实现yum源的配置
cd /etc/yum.repos.d/
mkdir backup
mv *.repo backup
脚本
cat > /etc/yum.repos.d/base.repo << eof
[base]
baseurl=file:///misc/cd
gpgcheck=0
eof
程序包编译
程序包编译安装:
Application-VERSION-release.src.rpm --> 安装后,使用rpmbuild 命令制作成二进制格式的rpm包,而后再安装
源代码--> 预处理--> 编译--> 汇编--> 链接--> 执行
源代码组织格式:
多文件:文件中的代码之间,很可能存在跨文件依赖关系
C 、C++ :make 项目管理器
configure脚本 --> Makefile.in --> Makefile
java: maven
编译安装
C语言源代码编译安装三步骤:
1 ./configure
(1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in文件生成makefile
(2)检查依赖到的外部环境,如依赖的软件包
2 make 根据makefile文件,构建应用程序
3 make install 复制文件到相应路径
开发工具:
autoconf: 生成configure 脚本
automake :生成Makefile.in
注意:安装前查看INSTALL ,README
开源程序源代码的获取:
官方自建站点:
apache.org (ASF :Apache Software Foundation)
mariadb.org
...
代码托管:
SourceForge.net
Github.com
code.google.com
c/c++ 编译器: gcc (GNU C Complier)
编译C源代码:
准备:提供开发工具及开发环境
开发工具:make, gcc等
开发环境:开发库,头文件
glibc :标准库
实现:通过“包组”提供开发组件
Development Tools
Server Platform Development
第一步:configure 脚本
选项:指定安装位置、指定启用的特性
--help: 获取其支持使用的选项
选项分类:
安装路径设定:
--prefix=/PATH: 指定默认安装位置, 默认为/usr/local/
--sysconfdir=/PATH :配置文件安装位置
System types: 支持交叉编译
Optional Features: 可选特性
--disable-FEATURE
--enable-FEATURE[=ARG]
Optional Packages: 可选包
--with-PACKAGE[=ARG], 依赖包
--without-PACKAGE, 禁用依赖关系
第二步:make
第三步:make install
安装后的配置:
(1)二进制程序目录导入至PATH 环境变量中
编辑文件/etc/profile.d/NAME.sh
export PATH=/PATH/TO/BIN:$PATH
(2)导入库文件路径
编辑/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中
让系统重新生成缓存:
ldconfig [-v]
(3)导入头文件
基于链接的方式实现:
ln -sv
(4)导入帮助手册
编辑/etc/man.config|man_db.conf 文件
添加一个MANPATH
centos7源码编译安装httpd-2.4...
1 下载源码包
www.apache.org——>点击projects栏——>查找所需的项目,并下载
rz上传到Linux里
httpd-2.2... centos6
httpd-2.4... centos7
ll -h httpd-2... 查看文件大小
tar xvf httpd-2... (-C /tmp 指定路径,可以不写,默认解到当前目录)
du -sh httpd-2... 查看目录大小
find /root/httpd-2... -name "*.c" |wc -l 统计httpd-2...目录中有多少.c文件
安装到与操作系统不同的分区,且是独立的目录中
规划安装在/app/apache24中,此目录不需要手动创建,安装时,会自动生成
2 安装开发包组
yum grouplist ——> Development Tools ——> yum goupinstall "Development Tools"
3 查看两个文件
cat README
cat INSTALL
4 cd /root/httpd-2.4... 进入此目录中,后续步骤必须在这个解压缩的目录中进行
./configure --help 功能和目录 查看选项
文件分层结构(FHS):/bin/和/sbin/ ——> 二进制文件;/etc/ ——> 配置文件;/usr/share ——> man帮助;
/app/apache24/(etc,bin,man,include...),这些文件安装目录也可以自己独立出来,都有各自的特定选项;
5 ./configure --prefix=/app/apache24/ --sysconfdir=/etc/apache24/ --enable-rewrite
--sysconfdir选项,配置文件独立安装到/etc/apache24/下,/etc/apache24/目录会自动生成,不写此选项,配置文件就会安装到/app/apache24/下
--enable-rewrite选项,启用此功能,不写,就是默认情况
安装过程中,可能会报错,提示依赖包,缺什么包装什么包即可,yum -y install 包-devel,然后再执行./configure ...
yum search apr
yum -y install apr-devel
yum -y install apr-util-devel
yum search pcre
yum -y install pcre-devel
! ./conf 执行历史命令./configure...
echo $? 0——>成功
ll -t 查看时间排序文件,makefile文件生成
cat config.log 日志文件
du -sh .
6 make && make install
du -sh .
ll -t
7 访问测试
iptables -vnL 查看防火墙是否关闭
netstat -ntl
cat INSTALL
/app/apache24/bin/apachectl start (不在path变量路径里,所以写全路径)
或者cd /app/apache24/bin/
./apachectl start
或者放入path变量路径里
cd /etc/profile.d/ 全局配置所有人都要用
vim apache24.sh
PATH=$PATH:/app/apache24/bin/
. apache24.sh
echo $PATH
apachectl start
netstat -ntl http:80
输入网址http://192.168.227.135,即可访问
cd /app/apache24/htdocs/
vim index.html
welcome to china
apachectl stop 停止http服务
netstat -ntl http:80无
输入网址http://192.168.227.135,不可访问
man apachectl
cd /app/apache24/man/ 对应工具的帮助
rpm -q httpd 确保本机的httpd包没有安装,否则会引起冲突,编译安装的httpd与安装包的httpd是一样的。
8 man http 如果找不到,需要写配置文件,如果可以找到,则不用写了;
centos6
vim /etc/man.config
... ...
MANPATH /app/apache24/man/ 一定是man1和man8的父目录
练习:
1 编写系统初始化脚本reset.sh,包括别名,提示符颜色,yum仓库配置文件, 安装tree,ftp,lftp,telnet等包
2 centos6的httpd安装报错,待解决
