标签:软件包管理
一个程序的四个组成部分:
二进制程序:
库: 【它是由底层glibc和其他程序生成的库共同组合而成的】
配置文件:
帮助文件:
常用目录:
/boot 存放内核 initrd{initramfs} 建议单独分区,因为将来根目录空间不够,可以做lvm 但是假如不单独分,bootloder不识别lvm,想识别lvm得先识别内核,内核又被做成lvm就成了死循环
/etc 配置文件
/usr 全局的共享的只读目录;/usr/share/man 帮助文件
/usr/local 用于安装第三方软件,它又自己独立的王国
/var 外围文件系统,日志文件 锁文件存放区域;没它可以,有它更规范;定期删除里面的日志
/dev 设备文件;不能单独分区
/lib 库文件
/tmp 临时文件系统;
/bin 二进制程序
/sbin 二进制程序
/proc 伪文件系统;非常重要,哪怕只有根目录,没有usr;也要提供proc 既不能单独分区,也没有任何文件,内核自我管理使用
/sys 伪文件系统;非常重要,哪怕只有根目录,没有usr;也要提供sys 既不能单独分区,也没有任何文件,内核自我管理使用
/mnt 用于挂载设备;意义不大
/media 用于挂载设备;意义不大
/home 单独分区
/root
/misc 基本上很少用
/opt 早先的一些软件,自认为自己是第三方软件,存放在这个目录里面
/srv
【根目录下的etc bin sbin lib 是linux启动所需的不能单独分区】
【/usr/bin sbin lib etc 是为操作系统提供核心功能的;因此可以单独分区】
【/usr/local 安装第三方软件的场所;建议独立分区】
软件包管理器功能:
1、制作软件包
2、实现软件包的安装、卸载、升级、查询、校验;
Readhat:RPM包
Debian:dpt包
依赖关系:
前端工具:yum
后端工具:RPM
rpm命令:
安装:rpm -i /path/to/package
-v 显示详细信息
-h 以#显示进度,每个#代表2%
-nodeps:忽略依赖关系
--replacepkgs:重新安装,替换原有安装
--force:强行安装,可以实现重装或降级;
查询:rpm -q PACKAGE_NAME
rpm -qa:查询已经安装的所有包
rpm -qi PACKAGE_NAME:查询指定包的说明信息
rpm -ql PACKAGE_NAME:查询安装包生成的文件列表
rpm -qf /path/to/somefile:查询指定的文件是由哪个RPM包安装
rpm -qc PACKAGE_NAME:查询指定包安装的配置文件
rpm -qd PACKAGE_NAME:查询指定包安装的帮助文件
rpm -q --scripts /PATH/TO/SOMEFILE查询指定包中包含的脚本
rpm -qpi PACKAGE_NAME:如果rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件
卸载:rpm -e package_name
升级:rpm -Uvh /path/to/new_package_file
如果安装了老版本就升级,否则就安装
rpm -Fvh /path/to/new_package_file
如果安装了老版本就升级,否则就退出
rpm -ivh --oldpackage /path/to/package:降级
校验:rpm -V PACKAGE_NAME 可以查出某些文件是否被改过
数据库的重建:rpm --rebuilddb重建数据库,一定会重新创建
rpm --initdb:初始化数据库,没有才建立,有就不用建立
检验来源合法性,及软件完整性;
对称:加密解密使用同一个密钥
公钥:一对儿密钥,公钥、私钥;公钥隐含于私钥中,可以提取出来,并公开出去,公钥一般加密的不是数据本身,而是数据的特征码
单向:
导入密钥文件,验证rpm包来源合法性:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release导入密钥文件
rpm -k /PATH/TO/PACKAGE_FILE
软件包命名:
主包:bind-9.7.1(版本号)-1.el5.i586.rpm
子包:bind-libs-9.7.1-1.el5.i586.rpm
bind-utils-9.7.1-1.el5.i586.rpm
包名格式:
name(包名)-version(版本号)-release(发行号).arch(平台架构).rpm
bind -major主.minor次.release-release.arch.rpm
主版本号:重大改进
次版本号:某个子功能发生重大改变
发行号:修正了部分bug,调整了一点功能
后面的release:当发现rpm包中缺少什么功能,再往里加,命名为这个
在官网上下载一般都是bind-9.7.1.tar.gz
rpm包:
二进制格式:方便管理
源码安装: 更充分的发挥硬件的性能
uname -a 查看硬件版本号
##########################################################################################
以上是rpm 命令,不是特别好用,所以要用yum,但是使用yum前提是有rpm包
#######################################################################################
yum的配置文件在 /etc/yum.conf里
yum
list:列出yum仓库的所有rpm包
clean:清理缓存
update:默认升级为最新版
update_to:升级为指定版本
remove: 卸载
info:查看指定包的详细信息
provides:查看指定文件是由哪个包安装完成
grouplist:列出yum组
groupinfo:指定包组的详细信息
groupinstall :安装开发组开发库之类的
安装mysql:先查看有没有php53*
yum install all php53* 如果有再安装
定义yum仓库:vim /etc/yum.repos.d/server.repo
[Base]
name=RHEL5 Sever
bbaseurl=ftp://172.16.0.1/pub/Server
enabled=1
gpgcheck=0
保存
############################################################################
############################################################################
编译安装c格式的源程序:
1、 前提:准备开发环境(编译环境)
红5 安装Development Tools和Development Libraries
红6 跟红5近似
2、下载源码包,一般都是压缩包,解压之后 ,进入该文件目录下
3、./configure --prefix=/usr/local/tengine(二进制程序在这个目录下都会自动创建bin目录) --conf-path=/etc/tengine/tengine.conf(配置文件存放路径)
[configure:作用1:让用户选定编译特性 2:检查编译环境 ]
4、make 开始编译
5、make install 编译完成
6、cd /usr/local/tengine/sbin ls查看刚刚安装的程序
7、必须vim /etc/profile 在expert前面加PATH=$PATH:/usr/local/tengine/sbin
【修改path的环境变量,以能够识别此程序的二进制文件路径】
8、重读配置文件 sourch /etc/profile
9、然后敲安装的程序就可以用了
#####################################################
安装之后,但是系统不识别这个二进制程序,所以还要修改路径
#####################################################
【此时在usr/local/tengine目录下有lib库,这个库是不能被其他系统调用的,想调用还得,添加路径】
在/etc/ld.so.conf.d/中创建以.conf为后缀的文件,而后把要增添的路径直接写进此文件
然后执行ldconfig 重新搜寻库文件
-v:重新搜寻库文件的过程
2、每一个输出了库文件的软件,都一定会有头文件在其中,头文件包含了其库文件的调用参数,参数类型的相关属性,如果不输出头文件,会导致二进制开发程序员开发的程序将不能编译运行
系统默认头文件在/usr/include下自定义增添头文件搜寻路径,使用连接进行 ln -s /usr/local/tengine/include/* /usr/include
或者将整个目录连接过去:ln -s /usr/local/tengine/include /usr/includ/tengine (目录名叫tengine)
3、然而帮助文件还是有问题
man命令默认安装在--prefix指定的目录下的man目录:/usr/share/man
我们可以编辑vim /etc/man.config
添加一行:MANPATH /usr/local/tengine
###################################################################
下面咱们再安装一个,实战训练笔记
###################################################################
安装LAMP
将tar包下载下来解压,并进入这个文件
./configure --help | less 查看他的选项都由哪些,每个跟每个设置路径的方式不一样所以要查一查
rpm -q httpd 确认httpd这个程序没有安装
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd
make 编译一把
make install
去/usr/local/apache 下查看是不是有manual lib
修改/etc/profile文件///////在expert前面加PATH=$PATH:/usr/local/apache/bin
在/etc/ld.so.conf.d/中创建httpd.conf 写入/usr/local/apache/lib
在apache目录上执行ldconfig -v
输出头文件:在/usr/local/apache/include目录下 所以我们ln -sv /usr/local/apache/include /usr/include/httpd
[上一行意思是: 把httpd的头文件的include目录连接到 系统默认头文件目录下叫httpd]
添加man功能 vim /etc/man.config 添加 MANPATH /usr/local/apache/man
netstat -tnlp 查看是否有人占着端口 kill + PID号 就可以杀死程序
apachectl start 将apache启动起来 再用netstat -tnlp查看
cd /usr/local/apache/htdocs 可以编辑html 修改画面
######
咱们插空讲一个命令:netstat 网络状态
-r 显示路由表
-n 以数字形式
-t 建立的tcp连接
-l 处于监听状态的链接
-p 显示监听指定的套接字的进程号及进程名
######
标签:软件包管理
原文地址:http://10183596.blog.51cto.com/10173596/1689388