文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

六、Linux企业级YUM软件管理

2024-04-02 19:55

关注

一、软件包的安装

程序员首先通过开发工具开发出软件来,最初的称为源码包,就是人能看的明白的。然后编译成机器可以看懂的二进制软件。而rpm就是红帽公司研发的适合自动化安装软件的一套软件管理工具。包含软件的存放位置,库文件、头文件,配置文件、文件间依赖关系等各种关系的管理工作。

1、软件包的组成部分

二级制程序:

                   安装位置:/bin /sbin、/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin。

库文件:也可以是可执行程序,可以是被其他程序调用的。在开发中通常称为函数,公共函数越多(库文件),软件包的适应性越强,包越小。

                   安装位置:/lib、/usr/lib、/usr/local/lib

配置文件:/etc/

帮助文件/手册:/usr/share/doc/

2、软件包管理工具(rpm):

文件清单

文件放置路径

提供的功能说明

依赖关系

3、rpm:package manager 软件包管理器

具有的功能:打包、安装、查询、卸载、升级、校验。

打包:就是将源码编译成可以安装、执行的软件包。

4、编译软件包依赖的环境:

4.1编译器:gcc,g++

提供编译环境,通常需要指明二进制文件的路径及库文件的路径

4.2库:/etc/ld.so.conf、/etc/ld.so.conf.dman

# MANPATH       /usr/libman


3.5添加头文件,使用ln -s 创建软连接到系统头文件目录/etc/include/中。

[root@37-test ~]# ln -sv /usr/local/nagios/include/ /usr/include/nagios

"/usr/include/nagios" -> "/usr/local/nagios/include/"

[root@mail ~]# ln -sv /usr/local/courier-authlib/include/* /usr/include/

"/usr/include/courier_auth_config.h" -> "/usr/local/courier-authlib/include/courier_auth_config.h"

"/usr/include/courierauthdebug.h" -> "/usr/local/courier-authlib/include/courierauthdebug.h"

"/usr/include/courierauth.h" -> "/usr/local/courier-authlib/include/courierauth.h"

"/usr/include/courierauthsaslclient.h" -> "/usr/local/courier-authlib/include/courierauthsaslclient.h"

"/usr/include/courierauthsasl.h" -> "/usr/local/courier-authlib/include/courierauthsasl.h"

"/usr/include/courierauthstaticlist.h" -> "/usr/local/courier-authlib/include/courierauthstaticlist.h"


知识点:

查看命令所依赖的库文件有哪些?ldd

[root@37-test ~]# ldd /bin/ls

linux-vdso.so.1 =>  (0x00007fff787b1000)

libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fa143af6000)

librt.so.1 => /lib64/librt.so.1 (0x00007fa1438ee000)

libcap.so.2 => /lib/libcap.so.2 (0x00007fa1436e9000)

libacl.so.1 => /lib64/libacl.so.1 (0x00007fa1434e1000)

libc.so.6 => /lib64/libc.so.6 (0x00007fa14314d000)

libdl.so.2 => /lib64/libdl.so.2 (0x00007fa142f48000)

/lib64/ld-linux-x86-64.so.2 (0x00007fa143d27000)

libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa142d2b000)

libattr.so.1 => /lib64/libattr.so.1 (0x00007fa142b26000)


查看运行命令的执行路径是什么?hash

[root@37-test ~]# hash

hits command

   1 /usr/bin/ldd

   1 /usr/local/nagios/bin/nrpe

   1 /bin/vi

   2 /usr/bin/man


ldconfig -v 

重新搜索系统中的所有库文件,并生成/etc/ld.so.cache。

[root@37-test ~]# ldconfig -v

ldconfig: /etc/ld.so.conf.d/kernel-2.6.32-642.11.1.el6.x86_64.conf:6: duplicate hwcap 1 nosegneg

ldconfig: 无法对 /usr/lib64/mysql 进行 stat 操作: 没有那个文件或目录

ldconfig: 多次给出路径“/usr/local/lib”

ldconfig: 多次给出路径“/usr/local/lib”

ldconfig: 多次给出路径“/usr/lib”

ldconfig: 多次给出路径“/usr/lib64”

/opt/glibc/lib:

libnss_nisplus.so.2 -> libnss_nisplus-2.14.so

ld-linux-x86-64.so.2 -> ld-2.14.so


七、编译源码格式的rpm包-SRPM


打包(rpm源代码包制作成rpm包,一般格式为:filename.src.rpm)

包制作过程是根据.spec文件来完成的。

源软件包经过编译后存放在/usr/src/目录下,并且一般在正确编译后会仅仅留下SRPMS里面的经过编译的软件包。

1、解压安装src.rpm包,有些安装需要创建指定的用户名。

[root@37-test ~]# rpm -ivh mingetty-1.00-3.src.rpm 

warning: mingetty-1.00-3.src.rpm: Header V3 DSA/SHA1 Signature, key ID db42a60e: NOKEY

   1:mingetty               ########################################### [100%]


2、进入解压目录,一般为用户家目录的rpmbuild中。

[root@37-test ~]# cd rpmbuild/S

SOURCES/ SPECS/   

[root@37-test SOURCES]# ll

总用量 20

-rw-rw-r--. 1 root root   259 3月   4 2002 mingetty-1.00-opt.patch

-rw-rw-r--. 1 root root 14038 3月   4 2002 mingetty-1.00.tar.gz


3、编译源码rpm包

[root@37-test SPECS]# rpmbuild -bb mingetty.spec 


-ba:生成二进制包及源码格式的rpm包

-bb:生成一个二进制格式的rpm包


可能会需要依赖包,将依赖包安装完毕后,重新编译。


[root@37-test rpmbuild]# ll

总用量 24

drwxr-xr-x 3 root root 4096 12月  9 14:11 BUILD

drwxr-xr-x 2 root root 4096 12月  9 14:11 BUILDROOT

drwxr-xr-x 3 root root 4096 12月  9 14:11 RPMS

drwxr-xr-x 2 root root 4096 12月  9 14:04 SOURCES

drwxr-xr-x 2 root root 4096 12月  9 14:11 SPECS

drwxr-xr-x 2 root root 4096 12月  9 14:07 SRPMS ##用于其他系统的重新制作编译

[root@37-test rpmbuild]# cd RPMS/

[root@37-test RPMS]# ls

x86_64

[root@37-test RPMS]# cd x86_64/

[root@37-test x86_64]# ls

mingetty-1.00-3.x86_64.rpm  mingetty-debuginfo-1.00-3.x86_64.rpm

[root@37-test x86_64]# rpm -ivh mingetty-debuginfo-1.00-3.x86_64.rpm 

Preparing...                ########################################### [100%]

   1:mingetty-debuginfo     ########################################### [100%]


问题:

1、error: line 4: Unknown tag: Copyright: GPL

此错误可以通过修改repc文件中的需要將"Copyright:"該改成新的Tag"License:" 即可


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯