我想在第一时间为打包为Debian小型图书馆。 对于这一点,我使用的是Debian官方政策手册,但因为这两天我遇到比我无法修复的问题。
这是我的包装方式:
- 创建压缩包(这里libvl_1.0.orig.tar.gz)
- 使用dh_make所产生的debian目录在debian的conf文件
- 修改控制文件,更新日志和版权正常。
- 使用的dpkg-buildpackage命令构建软件包。
到这里为止,没有任何问题。 但是,因为它是一个图书馆,我需要创建一些符号链接进行安装时,这关系到图书馆的SONAME。 在这里我的图书馆被称为libvl。 因此,例如,我建立了一个名为libvl.so.1.0文件,因为它是第一个版本。 为了把事情做对,我想我应该创造这样的符号链接:
libvl.so -> libvl.so.1 -> libvl.so.1.0
要做到这一点,我试图同时运行具有使安装过程中创建这些链接。 这是,如果你推出的“让安装”命令工作。 但是,使用dpkg安装时,如果没有创建的链接,我不知道为什么。 我也尝试过使用的postinst脚本,但没有任何结果。 这里是我下面的生成文件:
DESTDIR =
LIBDIR = usr/lib
LIB = libvl.so
MAJOR = 1
MINOR = 0
CC = gcc
CC_FLAGS = -Wall -ansi -Isrc/
LD_FLAGS =
LN = ln -s
SRC = very_long.c
OBJ = $(SRC:.c=.o)
all: libvl
libvl: $(OBJ)
$(CC) -fPIC -c $(SRC)
$(CC) -shared -a -o $(LIBDIR)/$(LIB).$(MAJOR).$(MINOR) $(OBJ)
install:
install -d -m 0755 -o root -g root $(DESTDIR)/$(LIBDIR)
install -m 0755 -o root -g root $(LIBDIR)/$(LIB).$(MAJOR).$(MINOR) $(DESTDIR)/$(LIBDIR)
$(LN) /usr/lib/$(LIB).$(MAJOR).$(MINOR) /usr/lib/$(LIB).1
$(LN) /usr/lib/$(LIB).$(MAJOR) /usr/lib/$(LIB)
clean:
rm $(OBJ) $(LIBDIR)/$(LIB).1.0
我想这个问题是存在的。 我欢迎任何答复或本评论:-)