您的位置:首页 > 运维架构 > Linux

linux软件包的安装笔记

2012-07-30 13:26 218 查看
应用程序存放位置:

二进制程序:

/bin /sbin

/usr/bin /usr/sbin

/usr/local/bin /usr/local/sbin

库文件(就是功能模块):

/lib /usr/lib

/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf

头文件:

/usr/include

配置文件:

/etc

/etc/httpd/

帮助文件:

/usr/share/man

/etc/man.config

/usr/share/doc

软件管理功能:

安装

卸载

升级

查询

校验

RedHat

Redhat package Manager:RPM(标准的软件管理格式)

rpm格式的软件包的命名:

name-version-release.arch.rpm

子rpm包name-subname

version:

major(主版本号)

minor(次版本号)

release(发行号),bug的修正

release:rpm包的制作者制作的次数

arch:硬件架构,平台

i386、i486、i586、i686,x86_64

noarch(与平台无关)

一个软件包为了管理上的方便,在制作成rpm包时,可以分为多个功能相对独立rpm包

name-version:主包

name-subname-version:子包

name-devel-version:库文件,头文件

二进制程序:有格式,特定于某硬件平台(编译器自身会在软件编译时对软件在特定平台上的运行进行优化)

依赖关系:

需要自动判断依赖关系,又能自动解决依赖关系软件包管理工具:

前端管理工具的出现: yum:yellowdog update modifier(阿黄升级管理器)

linux上软件包的安装途径:

1、rpm包

rpm命令

yum命令

2、源码包

编译安装

3、编译好的二进制压缩包,解压后配置使用

Mysql

NongoDB

rpm命令:

安装

rpm -i PACKAGE1 PACKAGE2 …

升级

rpm -U|-F PACKAGE1 PK2 …

卸载

rpm -e PK_name PK2_name

查询

rpm -q

检验

rpm -V PK_name

rpm包中包含的内容:

要安装的文件

要执行的脚本

pre 安装前要执行的脚本

post 安装后要做收尾工作执行的脚本

preun 卸载之前执行的脚本

postun 卸载完成后执行的脚本

安装:(包与包间的所依赖的东西叫capacity(能力))

rpm -i

-v 显示安装的详细信息,v越多,信息越详细

-h 显示安装进度

--test 安装前的测试,不做安装

--nodeps 忽略依赖关系

--replacepkgs 由于一个已安装的软件包的某些文件被删除时,重装一个软件包,替换

--force 强行安装,无视冲突

卸载:

rpm -e PKG_name

--nodeps

升级:old-->new;new-->old(降级)

rpm

-F:old-->new,无old,则不new;

-U:old-->new,无old,则安装new;

-v

-h

注意:内核不应该升级安装,内核允许多版本并存,所以,可直接安装多个不同版本内核

--oldpackage 降级

查询:

rpm -q PKG_NAME

rpm -qa

rpm -qi PKG_NAME 查询已安装软件包的信息

单向加密:

rpm 包:单向加密:提取数据特征码

1、如果原数据一样,结果一定会一样

2、雪崩效应:原数据有一点点不同,结果大不同

rpm包的验证签名:

用官方的公钥解密这段加密的特征码,得到可靠的官方提供的特征码;

自己再使用同样的方法提取的特征码,并比较和解密出来的特征码是否一致;

rpm -ql PKG_NAME 用于列出此rpm包安装完成后在系统上生成了哪些文件

rpm -qf FILE(路径) 用户查询某文件是由哪个rpm安装包生成的

rpm -qc PKG_NAME 查询rpm包生成的配置文件

rpm -qd PKG_NAME 查询此rpm包生成的文档

rpm -q --scripts PKG_NAME 查询rpm包内置的脚本

rpm -qpl PKG 查询还没有安装的rpm包在安装后会创建哪些文件

rpm -qpi PKG 查询还没有安装的rpm包的详细信息

检验:

rpm -V PKG-NAME 检查某rpm包安装生成的文件有没有被非法改变过;

rpm -k PKG 检查签名

检验签名:

rpm --import 密钥文件(/etc/pki/rpm-gpg)

rpm -k PKG

--nodigest:不检验单向加密的相关内容(sha1,md5)

--nosignature:不检验签名(gpg,dsa)

rpm数据库:(var/lib/rpm)

rpm --initdb 重新初始化丢失的库

--rebuilddb 重建,无论事前是否存在

yum: 自动解决依赖关系

repository:仓库,这里存放的就是yum源数据

获取数据的方法:

1、yum仓库在本地某目录 file:///

2、yum仓库在远程服务器
ftp:// http://
yum仓库包括的内容:

rpm包

repodata/ 只有包含此目录为其子目录的那个路径才可以用作yum源

repomd.xml 此文件保存时间戳

primary.xml.gz 当前yum仓库内每一个rpm包的名字及其彼此间的依赖关系,此外还包含每一个rpm包能够安装生成的文件

filelists.xml.gz 所有rpm包包含的安装生成的文件的文件列表

other.xml.gz 额外信息,主要包含的是rpm包的changellog(改变日志)

yum命令,有许多子命令

/etc/yum.conf

/etc/yum.repos.d/*.repo

/etc/yum/pluginconf.d/

yum的配置文件 分为两段

全局配置

分段配置

[repo]

name=primary yum repository

baseurl=file:///var/yumrepo/server(本地) ftp://192.168.0.254/pub/server(远程服务器上) ftp://username:password@192.168.0.254/pub/server(有用户名和密码的服务器)

enabled=1 是否启用这个yum源

gpgcheck=1 是否检测rpm包的签名

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

yum的命令:

repolist 列出来已安装的包

list {installed|available|updates|all}

clean {all|packages|metadata}

清除cache(元数据,rpm包)

grouplist

groupinfo "groupname"

info PKG_NAME 显示指定包的信息

search KEYWORD 查找指定关键字的包

whatprovides FILE 查找某文件是由哪个包安装生成的

provides FILE 查找某文件是由哪个包安装生成的

install PKG_NAME

remove PKG_NAME

update

groupinstall 组名

groupremove 组名

reinstall

check-update检测哪些能升级的包

localinstall

自己创建yum源:

1、yum install createrepo 先安装createrepo命令

2、把rpm包放在一个目录 /var/myum

3、createrepo /var/myum 运行这个命令后/var/myum下会产生repodata目录

4、vi /etc/yum.repos.d/local.repo

软件包源码编译安装:

source code---> binary

编译安装需要的开发环境(包组)

Development Tools

Development Libraries

X Software Development 图形相关

./configure

--help

--prefix=/usr/local/apache 指定安装路径

/usr/local/apache/bin 二进制文件路径

/usr/local/apache/lib 库文件

默认系统只从/lib /usr/lib这两个目录查找库文件,所以为了让系统能找到/usr/local/apache/lib目录上的库文件,就这样操作

*导出库文件路径:/etc/ld.so.conf

1、新建文件/etc/ld.so.conf.d/*.conf,并将当前软件的库文件所在的目录添加至新建的文件

2、运行命令ldconfig [-v],使其生效

*头文件:/usr/include

/usr/local/apache/include

# ln -s /usr/local/apache/include /usr/include/apache

手册文件:/etc/man.config :MANPATH /usr/share/man

/usr/local/apache/man

man -M /usr/local/apache/man httpd 指定位置查找httpd的手册

--sysconfdir= 指定配置文件的安装路径

make

make install
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  软件包安装