将.deb文件作为依赖项添加到debian包中

时间:2015-07-30 19:18:01

标签: debian packaging

我正在尝试打包一个程序(FCL),但它有一个依赖项 - libccd - 我必须打包自己。所以现在我使用check-install创建了一个libccd_2.0-1.deb文件,我希望它可以作为FCL依赖项安装。所以我在FCL Debian软件包的控制文件中添加了libccd (>= 1.0)。但是FCL包抱怨它找不到依赖libccd

如何在libccd_2.0-1.deb看到依赖关系libccd时让FCL包安装?另外,我应该在FCL Debian软件包中添加.deb文件?

2 个答案:

答案 0 :(得分:1)

不,你不能。 dpkg(用于安装单个.deb文件)无法满足依赖性。

依赖项只能由apt-get / aptitude解决,但它们无法直接安装.deb文件,只能从存储库安装软件包。每个存储库都有一个元数据文件并且apt构建其知识数据库,因此当依赖关系表明需要包libccd时,它将知道存储库XY可以使用它。

但是dpkg不知道在哪里搜索所需的包。您可以先安装libccd*.deb,然后再安装fcl*.deb来安装软件包。或者最好你可以将它们作为一个dpkg调用的参数,如下所示:dpkg -i fcl*.deb libccd*.deb和dpkg将自己确定首先安装哪两个。 (或者,您可以创建自己的存储库,其中包含具有相关元数据的两个包。)

答案 1 :(得分:1)

从apt 1.1版开始(目前在Debian实验中),您可以直接使用以下命令安装.deb文件:

% sudo apt-get install ./disorderfs_0.1.0-1_amd64.deb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'disorderfs' instead of 'disorderfs_0.1.0-1_amd64.deb'
The following additional packages will be installed:
  fuse
The following NEW packages will be installed:
  disorderfs fuse
0 upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
Need to get 70.8 kB/81.2 kB of archives.
After this operation, 175 kB of additional disk space will be used.
Do you want to continue? [Y/n]