17_Linux软件管理
软件包管理应用程序: 程序,ArchitectureC语言:源代码-->(编译)二进制格式脚本:解释器(二进制程序)源代码-->编译-->链接-->运行 程序 库 静态 动态 静态链接 动态链接 共享库配置文件:dir=/PATH/TO/SOMEWHERE程序组成部分 二进制程序 库 配置文件 帮助文件-----这些就能启动一个系统----/etc,/bin,/sbin,/lib 系统启动需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上/usr/ bin sbin lib /usr放的是,操作系统核心功能,可以单独分区----------------------------第三方-------/usr/local bin sbin lib etc man/opt/proc/sys 不能单独分区,默认为空/dev:设备,不能单独分区 udev/root:不能单独分区/var:建议单独分区/boot:内核,initrd(initramfs)POST-->BIOS(HD)-->(MBR)bootloader(能够识别相应的文件系统结构,ext2,ext3,xfs...)-->内核程序:指令+数据 指令:芯片 CPU:普通指令,特权指令 指令集C语言 Powerpc:二进制格式x86:汇编powerpc:汇编软件包管理器的核心功能1、制作软件包2、安装、卸载、升级、查询、校验Redhat,SUSE,DebianRedhat,SUSE:rpmDebian:dpt前端工具:yum,apt-get后端工具:rpm,dptyum:Yellowdog Updater? Modifiedrpm命令: rpm: 数据库:/var/lib/rpm rpmbuild:安装、查询、卸载、升级、校验、数据库的重建等工作rpm命名:包:组成部分 主包 bind-9.7.1-1.i586.e15.rpm 子包: bind-libs-9.7.1-1.i586.e15.rpm bind-utils-9.7.1-1.i586.e15.rpm包名格式: name-version-release.arch bind-major.minor.release-release.arch.rpm主版本号,重大改变次版本号,某个子功能发生重大变化发行号:修正了部分bug,调整了一点功能rpm包: 二进制格式(一般都二进制格式) rpm包作者下载源程序,编译配置完成后,制作成rpm包 源码格式rpm:1、安装:rpm -i /PATH/TO/PACKAGE_FILE -h:以#号显示安装进度,每个#表示2% -v:显示详细过程 -vv:更详细的过程rpm -ivh /PATH/TO/PACKAGE_FILE --nodeps:忽略依赖关系 --replacepkgs:重新安装,替换原有安装 --force:强行安装,可以实现重装或降级2、查询rpm -q PACKAGE——NAME:查询指定的包是否已经安装rpm -qa :查询已经安装的所有包rpm -qi PACKAGE_NAME:查询指定包的说明信息rpm -qc PACKAGE_NAME:查询指定包安装的配置文件rpm -ql PACKAGE_NAME:查询指定包安装后生成的文件列表rpm -qf /path/to/somefile:查询指定的文件是由哪个rpm包安装生成的rpm -q --scripts PACKAGE_NAME:查询指定包中包含的脚本rpm -qf /path/to/somefile:查询指定的文件是由哪个rpm包安装生成的如果某rpm包尚未安装,我们需查询其说明信息,安装以后会生成的文件rpm -qpi /PATH/TO/PACKAGE_FILErpm -qpi3、升级rpm -Uvh /PATH/TO/PACKAGE_FILE:如果装有老版本的,则升级,否则,则安装rpm -Fvh? /PATH/TO/PACKAGE_FILE:如果装有老版本的,则升级,否则,退出 --oldpackage:降级4、卸载rpm -e PACKAGE_NAME --nodepe5、校验rpm -v PACKAGE_NAME6、重建数据库 rpm --rebuilddb:重建数据库,一定会重新建立 --initdb:初始化数据库,没有才建立,有就不用建立7、校验来源合法性,及软件包完整性# ls /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7rpm -K /PATH/TO/PACKAGE_FILE dsa,gpg:验证来源合法性,也即验证签名,可以使用--nosignature,略过此项 sha1,md5:验证软件包完整性,可以使用--nodigest,略过此项rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 :导入密钥文件=============================rpm-->yumHTML:HyperText Markup Language XML:Extensible Markup Language XML,JSON:版结构化数据yum仓库中的元数据primary.xml.gz 所有RPM包的列表 依赖关系 每个RPM安装生成的文件列表filelists.xml.gz 当前仓库中所有RPM包的所有文件列表other.xml.gz 额外信息,RPM包的修改日志repomd.xml 记录的是上面三个文件的时间戳和校验和yum install zshcomps*.xml:RPM包分组信息如何为yum定义repo文件[Repo_ID]name=Descriptionbuseurl= ftp:// http:// file://enabled={1|0}gpgcheck={1|0}yum [options] [command] [package ...]-y:自动回答为yes--nogpgchecklist:列表 支持glob all available:可用的,仓库中有但尚未安装的 installed:已经安装的 updates:可用的升级clean:清理缓存 [ packages? |? headers? | metadata? |? dbcache? |? all]repolist:显示repo列表及其简要信息 all enabled:默认 disabledinstall:安装yum install PACKAGE_NAMEupdate:升级update_to:升级为指定版本remove|erase:卸载info:provides|whatprovides:查看指定的文件或特性是由哪个安装包生成的groupinfogrouplistgroupinstallgroupremovegroupapdate/media/cdrom/{ Server,VT,Cluster,ClusterStorage }如何创建yum仓库:createrepohttp://172.16.0.1/yum/{ Server,VT }RPM安装: 二进制格式: 源程序-->编译-->二进制格式 有些特性是编译选定的,如果编译未选定此设定,将无法使用 rpm包的版本会落后于源码包,甚至落后很多定制:手动编译安装编译环境:开发环境开发库:开发工具Linux:CGUN:CC,C++:gcc:GUN C Complier,Cg++:make:项目管理工具, makefile:定义了make(gcc,g++)按何种次序去编译这些源程序文件中的源程序automake,-->makefile.in-->makefileautoconf,-->configuremake install 手动编译安装的三步骤前提:准备开发环境(编译环境)# ./configure --help:获取脚本的使用格式 --prefix=/path/to/somewhere:指定安装路径 --sysconfdri=/PATH/TO/CONFFILE_PATH:指定配置文件路径 功能:1、让用户选择编译特性,2、检查编译环境# make#make install (上面这两条可以写成make &&make install)编译软件包如果我们把它安装在非默认路径下。。1、要修改PATH环境变量,以能够识别此程序的二进制文件路径 修改/etc/profile文件 在/etc/profile.d/目录建立一个以.sh为名称后缀的文件,在里面定义export PATH=$PATH:/path/to/somewhere2、默认情况下,系统搜索库文件的路径/bin,/usr/lib;要增添额外搜寻路径 在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中 # ldconfig 通知系统重新搜寻库文件 -v:显示重新搜寻库的过程3、头文件:输出给系统 默认:/usr/include 增添头文件搜寻路径,使用链接进行 /usr/local/tengine/include/?? ?/usr/include/ 两种方式: ln -s /usr/local/tengine/include/*?? ?/usr/include/?? ?或 ln -s /usr/local/tengine/include/?? ?/usr/include/tengine4、man文件路径:安装在--prefix指定的目录下的man目录:/usr/share/man 1、man -M /PATH/TO/MAN_DIR COMMAND 2、在/etc/man.config中添加一条MANPATHnetstat命令: -r:显示路由表 -n:以数字方式表示 -t:建立tcp连接 -u:建立udp -l:显示监听状态的连接 -p:显示监听指定的套接字的进程的进程号及进程名 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |