文章出处:
Get the dpkg file from Linux Download Page
The above link will download cav-linux_x64.deb
- Open console to install
$ cd Downloads $ dpkg -i cav-linux_x64.deb Selecting previously unselected package cav-linux. (Reading database ... 327088 files and directories currently installed.) Preparing to unpack cav-linux_x64.deb ... Unpacking cav-linux (1.1.268025-1) ... dpkg: dependency problems prevent configuration of cav-linux: cav-linux depends on libssl0.9.8 (>= 0.9.8m-1); however: Package libssl0.9.8 is not installed. dpkg: error processing package cav-linux (--install): dependency problems - leaving unconfigured Errors were encountered while processing: cav-linux |
- Revert broken install
$ sudo apt --fix-broken install Reading package lists... Done Building dependency tree Reading state information... Done Correcting dependencies... Done The following packages will be REMOVED: cav-linux 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. 1 not fully installed or removed. After this operation, 75.4 MB disk space will be freed. Do you want to continue? [Y/n] y (Reading database ... 327305 files and directories currently installed.) Removing cav-linux (1.1.268025-1) ... Uninstallation succeed! |
The issue is that the libssl0.9.8 library is very old and should not be used.
In order to fix this we will have to extract the cav-linux_x64.deb and update the libssl dependency to latest one.
We can fix this either by running command as root or using fakeroot.
This is required to maintain file permissions and ownership
Updating dpkg by switching to root
$ sudo su # mkdir cav_linux_fixed # dpkg-deb -R cav-linux_x64.deb cav_linux_fixed # cd cav_linux_fixed/ # cd DEBIAN/ # cat control Package: cav-linux Version: 1.1.268025-1 Architecture: amd64 Maintainer: comodo <comodo@ubuntu64.com> Installed-Size: 73597 Depends: libc6 (>= 2.4), libfontconfig1 (>= 2.8.0), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.12.0), libice6 (>= 1:1.0.0), libpam0g (>= 0.99.7.1), libsm6, libssl0.9.8 (>= 0.9.8m-1), libstdc++6 (>= 4.1.1), libx11-6, libxext6, libxrender1, zlib1g (>= 1:1.1.4) Section: alien Priority: extra Description: COMODO Antivirus and Mail Gateway for Linux COMODO Antivirus and Mail Gateway for Linux. . COMODO Antivirus provides real-time protection for file system. COMODO Mail Gateway brings inbound and outbound email security with real-time antivirus function. . After installation: Please run /opt/COMODO/post_setup.sh script manually to configure it. Please start COMODO from Menu or Desktop. . (Converted from a rpm package by alien version 8.86.) |
From the above cat output we can see in Depends section libssl0.9.8 (>= 0.9.8m-1) is hardcoded.
We will have to replace libssl0.9.8 (>= 0.9.8m-1) with libssl1.1
Next while still running as root, use your favourite editor to edit control file to update libssl.
The updated depends section will look like this :
Depends: libc6 (>= 2.4), libfontconfig1 (>= 2.8.0), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.12.0), libice6 (>= 1:1.0.0), libpam0g (>= 0.99.7.1), libsm6, libssl1.1, libstdc++6 (>= 4.1.1), libx11-6, libxext6, libxrender1, zlib1g (>= 1:1.1.4) |
- Repackage this folder as deb
Downloads/cav_linux_fixed/DEBIAN# cd .. Downloads/cav_linux_fixed/# cd .. Downloads# dpkg-deb -b cav_linux_fixed cav_linux_fixed.deb dpkg-deb: building package 'cav-linux' in 'cav_linux_fixed.deb'. |
- Now run the cav_linux_fixed.deb file
Downloads# sudo dpkg -i cav_linux_fixed.deb (Reading database ... 327306 files and directories currently installed.) Preparing to unpack cav_linux_fixed.deb ... Unpacking cav-linux (1.1.268025-1) over (1.1.268025-1) ... Uninstallation succeed! Setting up cav-linux (1.1.268025-1) ... $Starting cmdagent: The cmdagent started successfully! $Starting cmgdaemon: The cmgdaemon started successfully! Installation succeed, but it must be properly configured before using. Please run /opt/COMODO/post_setup.sh script manually to configure it. |
Updating dpkg by running fakeroot
When usign fakeroot all commands are passed in a single execution.
Since the fakeroot process handles the file permissions and ownership in memory of the currently executed fakeroot process.
$ fakeroot sh -c ' mkdir cav_linux_fixed dpkg-deb -R cav-linux_x64.deb cav_linux_fixed echo "existing control file data" cat cav_linux_fixed/DEBIAN/control | grep libssl echo "" sed -i.bck "s/libssl0.9.8 (>= 0.9.8m-1)/libssl1.1/g" cav_linux_fixed/DEBIAN/control echo "updated control file data" cat cav_linux_fixed/DEBIAN/control | grep libssl echo "" dpkg-deb -b cav_linux_fixed cav_linux_fixed.deb rm -rf cav_linux_fixed ' |
文章出处: