centos安装pkg config,centos如何安装软件

大家好,关于centos安装pkg config很多朋友都还不太明白,今天小编就来为大家分享关于centos如何安装软件的知识,希望对各位有所帮助!

pkg-config找不到openssl.pc

## 2021-12-28 15:35第一次修改。

情况是在centos7.9上,c程序编译.o完成,链接时候没有找到openssl,报错如下:

openssl是 grpc.pc引入的:

已经安装 openssl、openssl-devel、openssl-perl、openssl-libs:

libssl.so也存在:

然后检查发现 openssl.pc文件明明存在:

然后打印 PKG_CONFIG_PATH发现问题,是我把 gcc升级后,gcc环境选择到/opt/rh目录了。

添加配置路径,发现没有生效:

添加另一个路径,然后我的是生效了:

最后我的程序链接完成。

centos7怎么编译安装gcc-c++

方法/步骤

1

yum install glibc-static libstdc++-static-y

安装c和c++的静态库(据说如果系统中缺少libc.a和libstdc++.a编译时会出错,但是我没有那么多闲情逸致去试,实践过的朋友可以回复一下,分享一下经验,让大家都长长见识)

2

下载解压gcc,我的gcc目录是gcc-4.8.0

3

进入gcc目录,执行:

./contrib/download_prerequisites

这个神奇的脚本文件会帮我们下载、配置、安装那三个依赖的库。可以节约我们大量的时间和精力。

4

你以为这三个库自动下载了、自动make install了就没事了吗?错!

很多人在编译gcc的时候出现各种奇奇怪怪的错误就是这步没有做好。

它们还不在.so文件的搜索路径里面,需要加进去,最后切记切记一定要执行一下ldconfig。

大致做法为:

1,找到你的共享库文件被install到哪个目录了(updatedb+locate命令)。

2,如果你的库不是直接放在/lib或/usr/lib下,需要修改/etc/ld.so.conf文件,加入你的共享库的路径

3,如果在2中添加了共享库路径,切记要执行一下ldconfig,更新响应cache文件让系统能找到你的共享库。

5

建立临时目录,这个目录用以存放编译时的大量临时文件,是文档要求中必须的。

我是在gcc-4.8.0下建立了一个名为gcc-build-4.8.0的目录,进入它。

mkdir gcc-build-4.8.0

cd gcc-build-4.8.0

配置gcc编译选项

6

强烈建议阅读INSTALL目录下的说明文档,尤其是configure.html,以确定你的编译选项。

比较基本的选项有--enable-languages,说明你要让你的gcc支持那些语言,--disable-multilib不生成编译为其他平台可执行代码的交叉编译器。--disable-checking生成的编译器在编译过程中不做额外检查,也可以使用--enable-checking=xxx来增加一些检查。

网上还说了什么--with-gmp、--with-mpfr、--with-mpc这三个选项,但是如果你3,4步做好了,就不要配了,反之你还是老实点吧别抱侥幸心理了。

调用gcc-4.8.0目录下的configure文件:

例如:

../configure--enable-checking=release--enable-languages=c,c++--disable-multilib

7

执行

../make#不解释

执行编译命令(#在8核的虚拟机上进行编译,每个核分配2个编译任务)

make-j16

make install编译过程CPU核基本100%占用,整个编译用时11分50秒。

检查gcc版本

#你就等吧少年,建议晚上睡觉前做

当然上面三步一定要在前一步顺利结束的情况下进行,如果哪一步出错了,结果都显示error了,就不要再做后面的了。在shell的输出里搜索"error"看具体的出错点是什么,baidu、google一下为什么。

如果你求稳的话,可以在make install之前先make check一下。

centos 下pkg文件怎么安装

安装pkg包方法:
1.软件安装包的格式转换(1)把标准的文件系统格式的软件安装包转换成数据流格式。把Solaris安装介质放入光驱中。然后按以下示例操作,生成一个包含SUNWadmap、SUNWadmc、SUNWadmr这三个软件包的数据流格式的大包:# cd/cdrom/cdrom0/Solaris*# pkgtrans./Product/tmp/3.pkg SUNWadmap SUNWadmc SUNWadmr# file/tmp/3.pkg/tmp/3.pkg:软件包数据流# head/tmp/3.pkg# PaCkAgE DaTaStReAm
SUNWadmap 1 618
SUNWadmc 1 928
SUNWadmr 1 68# end of header
BASEDIR=/
CATEGORY=system
DESC=Software used to perform system administration tasks
EMAIL=
HOTLINE=Please contact your local service provider(2)把数据流格式的软件安装包转换成标准的文件系统格式。仅提取SUNWadmap软件包,并保存在/var/spool/pkg目录# pkgtrans/tmp/3.pkg/var/spool/pkg SUNWadmap提取所有的软件包,并保存在/tmp目录# pkgtrans/tmp/3.pkg/tmp all如果pkgtrans命令的最后不指定具体的软件包的话,则命令运行后会显示所有可转换的包的列表并提示进行选择。
2.查看软件包的描述信息
pkginfo命令可以显示所有安装在本地系统磁盘的的软件包信息。在/var/sadm/pkg/目录中保留了一个所有已安装包的记录,可用以下两条命令查看安装的包总数。# ls/var/sadm/pkg wc-l.# pkginfo wc–l仅查看完整安装的软件包数量,等同于pkginfo–i wc–l其他常见用法:# pkginfo more查看系统安装了哪些包# pkginfo–l more# pkginfo–l SUNWxxx特定包的具体信息,SUNW代表SUN系统的软件# pkginfo–d./top-3.6-sol10-x86-local查看安装包中包含的软件包信息
application SMCtop top#软件包为SMCtop,SMC说明是第三方软件# pkginfo–d./top-3.6-sol10-x86-local–l SMCtop查看SMCtop的信息
3.添加软件包(1)在默认情况下,pkgadd命令会查看/var/spool/pkg目录中是否有标准格式的软件包并列出所有可安装的软件包,是否安装进行安装(关于/var/spool/pkg目录的使用详见下文“使用spool目录”):# pkgadd
pkgadd: ERROR:在</var/spool/pkg>中没有发现包(2)如果标准软件包在其他目录(非/var/spool/pkg)中,可用-d选项,示例如下。# pkgadd-d/tmp/soft---------自动寻找/tmp/soft目录中可安装的软件包# pkgadd-d. SMCtop---------仅安装SMCtop软件包(3)如果要直接安装数据流格式的软件包,可用以下命令:# pkginfo-d$HOME/top-3.6-sol10-x86-local-------查看包含哪些软件包
application SMCtop top# pkgadd-d./top-3.6-sol10-x86-local [all]-------“[ ]”中为可选项(4)可以把数据流格式的软件包都导到/var/spool/pkg目录并以标准格式存放:# pkgadd-d$HOME/top-3.6-sol10-x86-local-s/var/spool/pkg SMCtop
Transferring<SMCtop> package instance或者使用pkgtrans命令把软件包从数据流格式转换成标准文件系统格式:# pkgtrans$HOME/top-3.6-sol10-x86-local/var/spool/pkg [SMCtop]
Transferring<SMCtop> package instance然后用pkgadd命令进行安装。
4.检查已安装的软件包(1)检查自系统安装以来,所有有变动的文件:# pkgchk
ERROR:/etc/default/login
modtime<01/22/05 07:28:36 AM> expected<04/16/07 02:26:23 PM> actual
file size<2258> expected<2259> actual
file cksum<57347> expected<57382> actual<……>(2)检查特定软件包的变动情况:# pkgchk SUNWbash(3)查看软件包中包括哪些文件:# pkgchk-v SUNWcarx(4)检查特定文件自安装以来的变化修改时间、文件大小、checksum等:# pkgchk-p/etc/shadow(5)查看特定文件的信息,特别是属于哪个软件包,必须全路径:# pkgchk-l-p/usr/bin/showrev
pkgchk的其他参数选项说明:-a:只审核文件属性。l-c:只审核文件内容,默认是都审核。l-f:尝试进行纠正。

阅读剩余
THE END