程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了构建 rpm - glob 找不到文件:大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决构建 rpm - glob 找不到文件:?

开发过程中遇到构建 rpm - glob 找不到文件:的问题如何解决?下面主要结合日常开发的经验,给出你关于构建 rpm - glob 找不到文件:的解决方法建议,希望对你解决构建 rpm - glob 找不到文件:有所启发或帮助;

我想生成一个 rpm 包 (Redhat),当我启动命令时出现错误:rpmbuild -ba librabbitmq.spec

在处理文件:librabbitmq1-0.10.0-0.x86_64 错误:找不到文件 全球: /root/rpmbuild/buildrOOT/librabbitmq-0.10.0-0.x86_64/usr/local/lib64/librabbitmq.so.1*

RPM 构建错误: glob 找不到文件:/root/rpmbuild/buildrOOT/librabbitmq-0.10.0-0.x86_64/usr/local/lib64/librabbitmq.so.1*

如何更正 Makefile 中的命令安装?请提出任何建议。

制作文件:

#Build a static library
name= librabbitmq.so
CC := gcc
CFLAGS := -Wall -g -DHAVE_PolL -DHAVE_SELECT -DHAVE_CONfig_H
    
OBjdiR := obj
#deFinition des fichIErs headers
INCLUDES := -I/usr/local/include/ -I/root/rpmbuild/sourcES/librabbitmq-0.10.0 -I/root/rpmbuild/sourcES/librabbitmq-0.10.0/unix
#deFinition des librairIEs
LFLAGS := -L/usr/local/lib64
LDFLAGS :=
liBS := -l. -lpopt
SRCS_RAW := amqp_API.c amqp_connection.c amqp_consumer.c amqp_framing.c amqp_hostcheck.c amqp_mem.c amqp_openssl_bio.c amqp_openssl.c \
amqp_openssl_hostname_valIDation.c amqp_socket.c amqp_table.c amqp_tcp_socket.c amqp_time.c amqp_url.c 


OBJs := $(addprefix $(OBjdiR)/,$(SRCS_RAW:.c=.o))

.PHONY: all
all: $(Name)
    @echo "$(MAKE) : Tout est genere"

$(Name):$(OBJs)
    ar rcs $(Name) $(OBJs) 
    ranlib $(Name)

#règle pour créer un répertoire d'objets s'il n'existe pas
$(OBjdiR):
    mkdir $(OBjdiR)

#définir une règle implicite pour créer des objets dans leur propre répertoire
#(note - ordre uniquement la dépendance sur le répertoire d'objets)
# $<:premIEr_dependance $@:cible 
$(OBJs): $(OBjdiR)/%.o: %.c | $(OBjdiR)
    $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ 
    
prefix:=/usr/local
install: librabbitmq.so
    install -m 644 librabbitmq.so $(prefiX)/lib64
.PHONY: install

.PHONY: clean
clean:
    $(RM) *~  $(Name)
    $(RM) -r  $(OBjdiR)

规格文件:

#
# spec file for package librabbitmq
#

%global sover   1
%global libname %{name}%{sover}
name:           librabbitmq
Version:        0.10.0
Release:        0
SumMary:        Amqp library in C
source:         librabbitmq-0.10.0.tar.xz
# SomE internal tests are licenced as GPL-3.0+ - they are only used in
# check phase and not shipped further
license:        LGPL-2.1-or-later
Group:          Development/librarIEs/C and C++
Url:            https://github.com/alanxz/rabbitmq-c

%description
This is a C-language AMQP clIEnt library for use with v2.0+ of the RabbitMQ broker.


%package -n %{libnamE}
SumMary:        Amqp library written in C
license:        LGPL-2.1-or-later
Group:          System/librarIEs

%define _prefix   /usr/local
#%define _unpackaged_files_terminate_build 0

%description -n %{libnamE}
Shared library for %{name} (%{sumMary}).

%package devel
SumMary:        Amqp library written in C
license:        LGPL-2.1-or-later
Group:          Development/librarIEs/C and C++
requires:       %{libnamE} = %{version}
requires:       pkgconfig

%description devel
headers,pkg-config files,so link and other development files for %{name}
(%{sumMary}).

%prep
%setup -q

%build
make 

%install
%make_install

%check

%post -n %{libnamE} -p /sbin/ldconfig
%postun -n %{libnamE} -p /sbin/ldconfig

%files -n %{libnamE}
%{_libdir}/%{name}.so.%{sover}*

%files devel
%doc CHANGELOG.md
%{_includedir}/rabbitmq.h
%{_libdir}/%{name}.so


%changelog

解决方法

不要将 RPMS 构建为根。

也就是说,您的 @H_109_3@makefile 很糟糕,您现在已经覆盖了整个计算机上的文件。这就是为什么您不应该以 root 身份构建 RPM。

在调用 @H_109_3@makefile 时,DESTDIR 需要支持 GNU 标准的 @H_109_3@make install 变量。它可能还有其他问题,我只是搜索了最常见的错误。

大佬总结

以上是大佬教程为你收集整理的构建 rpm - glob 找不到文件:全部内容,希望文章能够帮你解决构建 rpm - glob 找不到文件:所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。