1、软件包 1.1、源码
1.2、程序包
1.3、程序包管理器
2、RPM
2.1、挂载光盘 mkdir /mnt/dvd mount /dev/cdrom /mnt/dvd vim /etc/fstab /dev/sr0 /mnt/iso iso9660 defaults 0 0 #将fstab中还没有挂载的进行挂载 mount -a 2.2、查询 rpm包管理工具,有一个数据库,会记录着所有已安装包的信息 select选项:
query选项:
- %pre,安装前脚本 − %post,安装后脚本 − %preun,卸载前脚本 − %postun,卸载后脚本
#查询vim包是否已安装 #注意,包名称必须完整 rpm -q vim-common #将所有已经安装的包列出来 rpm -qa #查询已经安装了哪些以vim开头的包 rpm -qa vim* #查询一个未安装的rpm包的信息 rpm -qpi /mnt/iso/Packages/samba-4.2.3-10.el7.x86_64.rpm #查找vim相关文件放在哪儿,安装包就是把相关文件放到相应目录 rpm -ql vim-common #查找配置文件 rpm -qc vim-common #查找说明文件 rpm -qd vim-common #查看这个文件是哪个包提供的 rpm -qf /etc/vimrc #查看包的信息。信息中如果有el7 这个参数,代表只适应在rhel7的发行版本上;如果有noarch这个参数,表示和平台无关 rqm -qi vim-common #查找这个包的脚本,有些包在安装的时候,会执行一些脚本 rpm -q --scripts openssh-server #查看还没有安装的包的脚本信息 rpm -qp --scripts /mnt/iso/Packages/samba-4.2.3-10.el7.x86_64.rpm #查看依赖关系 rpm -qR vim-enhanced 2.3、安装包 rpm -ivh /mnt/iso/Packages/zip-3.0-10.el7.x86_64.rpm −-i, 安装 −-v,显示安装信息 −-h,以#显示安装过程 安装选项:
2.4、升级包 升级包有两种选项:
#执行upgrade升级 rpm -Uvh zip-3.0-11.el7.x86_64.rpm #执行freeshen升级 rpm -Fvh zip-3.0-11.el7.x86_64.rpm 2.5、降级
注意: 1.如果原程序包的配置文件曾被修改,升级时,新版本提供的相同配置文件不会直接覆盖老版本的配置文件,而是将新版本的配置文件重命名(.rpmnew) 2.6、卸载包 #卸载zip这个包 rpm -e zip 2.7、校验
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-* #导入key rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-* #重新安装就不会提示没有校验了 rpm -ivh --replacepkgs samba* 注意:没有导入key之前,安装包的时候,最后会出现一个NOKEY 2.8、数据库
#初始化数据库 #只有不存在数据库时,创建数据库 rpm --initdb #重建数据库 #无论存不存在数据库,重新创建 rpm --rebuilddb 3、YUM rpm包之间有依赖关系,使用rpm工具安装不方便,所以需要一个前端工具,自动解决依赖关系 红帽系linux使用的程序包管理工具:
3.1、yum原理
更新
多仓库:
3.2、创建yum仓库 /etc/yum.conf,为所有仓库提供分共配置 /etc/yum.repos.d/*.conf,具体仓库配置
在/etc/yum.repos.d/这个目录下新建一个必须以.repo结尾的文件 [仓库ID] #注意,如果多仓库,ID不可重复 name=仓库名字 baseurl=包的路径 #package和repodata目录必须在一起,也就说这里要写这两个目录的上一级目录 enabled=1 #是否启用这个仓库,0为不启用 gpgcheck=0 #是否验证,1为验证 gpgkeyfile=文件路径 #如果不验证,就可以不写 enablegroups=1 #是否启用包组功能 failovermethod={roundrobin|priority} #如果此仓库不可用,默认使用roundrobin,随机选择一个配置的其它的仓库,也可通过优先级指定。 cost=1000 #仓库开销,默认为1000 例: vi /etc/yum.repos.d/test.repo [rhel7] name=rhel7 baseurl=file:///tmp/cdrom #注意:本地路径以file://开头 enabled=1 gpgcheck=0 #从仓库中下载元数据文件 #如果status为0,说明没有找到任何程序包。 yum repolist #命令行创建一个repo文件 #这种方式,会少一个参数:gpgcheck=0 yum-config-manager --add-repo=url --save 3.3、安装包 #安装程序包 yum install -y gcc #重新安装 yum reinstall gcc #列出包组 yum grouplist #查看包组信息 yum groupinfo "Development Tools" #安装包组 yum groupinstall -y "Development Tools" 3.4、安装图形化和开发工具 CentOS6安装如下包: yum groupinstall "Desktop" yum groupinstall "X Window System" yum groupinstall "Development tools" startx CentOS7安装如下包: yum groupinstall "Server with GUI" yum groupinstall "GNOME Desktop" yum groupinstall "Development Tools" startx GNOME和KDE:
3.5、更新 #更新所有的包 yum update #更新内核 yum update kernel #列出所有内核 yum list kernel 注意:
#降级安装 yum downgrade PACKAGE 3.6、卸载包 #卸载gcc yum remove gcc 3.7、yum的其它用法 #从仓库里查找带有这个关键字的包 yum search http #查看一个命令是哪个包提供的 yum provides ping #查看这个包的信息 yum info tartgetcli #清除yum缓存 yum cleanall #创建缓存 yum makecache #查看包的依赖 yum deplist gcc #查看历史事务 yum history 3.8、yum插件(扩展)
yum install -y yum-plugin-fastestmirror − 安装之后,生成配置文件/etc/yum/pluginconf.d/fastestmirror.conf。配置文件中的hostfilepath字段,用于定义yum源的配置文件(通常是/var/cache/yum/timedhosts.txt),然后我们就可以将所知道的yum源统统写入这个txt文件
yum install -y yum-plugin-priorities vim /etc/yum/pluginconf.d/priorities.conf [main] enabled = 1 check_obsoletes = 1 vim /etc/yum.repos.d/centos.repo priority=1 #注:数字越小,优先级越高,用数字1-99表示,共99个级别 3.9、创建私有YUM仓库(扩展) 在生产环境中,我们需要搭建一个自定义的yum仓库,怎么办呢? #通过外部yum源,下载所需安装包 #只下载,不安装 yum install -y --downloadonly --downloaddir=/mnt/pkg samba #安装创建repodata文件工具 yum install -y createrepo #创建repodata #默认会产生一个repomd.xml文件,这个文件是元数据文件的校验码 createrepo /mnt/pkg 4、源码安装 源代码--->编译--->链接--->执行
4.1、makefile文件怎么生成呢?
4.2、常用make工具
4.3、常用编译器 gcc,开源的c、c++程序的编译器 4.4、源代码获取
4.5、cmake、make、gcc区别
4.6、前提 编译C源代码前提:
#开发工具包组,已经包含make,gcc等 yum groupinstall -y "Development Tools" 源码基本都是压缩文件,需要先解压:
cd到源码目录 4.7、configure #查看帮助 ./connfigure --help 安装路径选项:
可选包选项:
可选功能选项:
注意:程序安装时,会有默认会安装的功能,这些功能,可用disable选择不安装。默认不会安装的功能,可用enable选择安装 #configure,通过选项传递参数,指定启用特性、安装路径等。执行时会参考用户的指定以及makefile.in文件生成makefile文件 #configure,还会检查程序所依赖的外部环境。 ./configure --prefix=/program/ 注意: configure这个脚本,一般程序会自带,但也有些不带,所以需要我们自己创建,需要两个开发工具:
4.8、make #当执行make时,make会在当前目录下搜索makefile文件,并根据makefile文件的内容构建应用程序 make 4.9、make install #执行完装,也就是将文件拷贝到指定目录 make install 4.10、安装后的配置 #导出二进制程序目录到PATH环境变量中 vim /etc/profile.d/test.sh export PATH=/program/bin/:$PATH #导出库文件路径 #添加新的库文件所在目录路径至些文件中 vim /etc/ld.so.conf.d/test.conf #让系统重新生成缓存 ldconfig
#导出头文件 #将新的头文件,软链接到默认头文件目录中 ln -s /program/include /usr/include #导出帮助手册 #添加man目录路径至此文件中 vim /etc/man.config 4.11、库文件 库文件,分动态链接库和静态链接库 静态链接库:
动态链接库:
#查询一个二进制程序所依赖的库文件 ldd /usr/bin/ls #查询当前已经缓存的库文件名及文件路径 ldconfig -p 4.12、头文件
库文件和头文件区别:
4.13、实例 源码编辑安装inotify-tools,这个工具是用来实时监听文件系统的变化 tar -zxvf inotify-tools-3.13.tar.gz cd inotify-tools-3.13 .configure --prefix=/program make make install ln -s /program/bin/* /usr/bin inotifywait -mrq -e modify,delete,create /tmp/doc −-m,监听 −-r,指定一个目录 −-q,打印事件 −-e,指定事件 ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:龚鑫,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |