我正在尝试打包一个程序(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
文件?
答案 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]