我是第一次尝试为Debian打包一个小型图书馆。为此,我使用的是官方的Debian Policy手册,但是由于两天后遇到了无法解决的问题。
这是我包装的方式:
到这里,没有问题。但是因为它是一个库,所以我需要在安装它时创建一些符号链接,这与库的SONAME有关。在这里,我的库称为libvl。因此,例如,我正在构建一个名为libvl.so.1.0的文件,因为它是第一个版本。为了做对,我想我应该创建这样的符号链接:
libvl.so -> libvl.so.1 -> libvl.so.1.0
Run Code Online (Sandbox Code Playgroud)
为此,我正在尝试使用make运行安装过程时创建那些链接。如果启动“ make install”命令,则此方法有效。但是当使用dpkg安装时,如果创建了链接则没有任何设置,我无法理解为什么。我也尝试过使用postinst脚本,但是没有任何结果。这是我的makefile下面:
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 …Run Code Online (Sandbox Code Playgroud)