Reputation: 5840
I am trying to package a program (FCL) but it has a dependency - libccd - which I had to package myself. So now I have created a libccd_2.0-1.deb
file using check-install and I would like it to be installed as FCL dependency. So I added libccd (>= 1.0)
in the control file of FCL Debian package. But the FCL package is complaining that it can't find the dependency libccd
.
How can I make FCL package install the libccd_2.0-1.deb
when it sees the dependency libccd
? Also, where should I add the .deb
file in the FCL Debian package?
Upvotes: 0
Views: 1446
Reputation: 1760
Since apt version 1.1 (currently in Debian experimental), you can actually install .deb files directly using:
% 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]
Upvotes: 1
Reputation: 6850
No you can't.
dpkg
(which is used for installing individual .deb files) cannot fullfil dependencies.
Dependencies can be resolved only by apt-get
/ aptitude
, but they cannot install .deb
files directly, they can install packages only from repositories. Each repository has a metadata file and apt build its knowledge database, so when dependency says package libccd
is needed, it will know that is available from repository XY.
But dpkg
doesn't know where to search for needed packages. You can install your packages either by installing the libccd*.deb
first, then by installing the fcl*.deb
itself. Or preferably you can put them both as parameters of one dpkg call like this: dpkg -i fcl*.deb libccd*.deb
and dpkg will figure itself which of those 2 to install first. (Or you can create your own repository where you will have both packages with related metadata.)
Upvotes: 2