Category: package management
-
dpk-query: why are certain packages being shown as “un … (no description available)”?
Solution: Some other package depends on this package, but only optionally resp. as an alternative; of the alternatives … one is indeed installed, but not this one, but still this is gets listed.
This is how the package first showed up:
$ dpkg-query --list foo... Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/... |/ Err?=(none)/... ||/ Name Version Architecture Description +++-======================-================-================-... un foo___________________ <none> <none> (no description available)I have that package “foo…” being displayed as Unknown (Desired) and Not (Status).
I am rather keen to know, why it gets listed at all.
I cannot find the right dpkg* command to tell me, which package depends on foo… .
This is sort of a “raw command” to help me:
$ fgrep --before 10 foo... /var/lib/dpkg/status
Update 2018-05-30:
This command line (almost) does, what I expect:
$ apt-rdepends --reverse foo... # the "r" in "rdepends" stands for "recursive"
The quirk is, that the dependency in fact is only optional resp. alternative (this is the reason, why the package is not installed), but this fact does not get displayed.
This command line does not, what I expect:
$ apt-cache rdepends foo... # the "r" in "rdepends" stands for "reverse"
-
“Oracle Instant Client” for Linux x86-64 (RPM) – why not “*.so.X.2”?
Why is this:
10.2.0.5 (why not “.so.10.2“?):
- ./usr/lib/oracle/10.2.0.5/client64/lib/libocci.so.10.1
- ./usr/lib/oracle/10.2.0.5/client64/lib/libclntsh.so.10.1
- ./usr/lib/oracle/10.2.0.5/client64/lib/libclntsh.so -> libclntsh.so.10.1
- ./usr/lib/oracle/10.2.0.5/client64/lib/libocci.so -> libocci.so.10.1
- ./usr/lib/oracle/10.2.0.5/client/lib/libsqora.so.10.1
11.2.0.2.0 (why not “.so.11.2“?):
- ./usr/lib/oracle/11.2/client64/lib/libocci.so.11.1
- ./usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1
- ./usr/lib/oracle/11.2/client64/lib/libclntsh.so -> libclntsh.so.11.1
- ./usr/lib/oracle/11.2/client64/lib/libocci.so -> libocci.so.11.1
- ./usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
11.2.0.4.0 (why not “.so.11.2“?):
- ./usr/lib/oracle/11.2/client64/lib/libocci.so.11.1
- ./usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1
- ./usr/lib/oracle/11.2/client64/lib/libclntsh.so -> libclntsh.so.11.1
- ./usr/lib/oracle/11.2/client64/lib/libocci.so -> libocci.so.11.1
- ./usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
12.2.0.1.0 (why not “.so.12.2“?):
- ./usr/lib/oracle/12.2/client64/lib/libocci.so.12.1
- ./usr/lib/oracle/12.2/client64/lib/libclntshcore.so.12.1
- ./usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1
- ./usr/lib/oracle/12.2/client64/lib/libclntshcore.so -> libclntshcore.so.12.1
- ./usr/lib/oracle/12.2/client64/lib/libclntsh.so -> libclntsh.so.12.1
- ./usr/lib/oracle/12.2/client64/lib/libocci.so -> libocci.so.12.1
- ./usr/lib/oracle/12.2/client64/lib/libsqora.so.12.1
The “.so.X.1” links even get described here:
-
“Oracle Instant Client” vs Debian (resp. Ubuntu)
- http://www.oracle.com/technetwork/database/database-technologies/instant-client/
- http://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/
- http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/
Of course “Oracle Instant Client”
- is closed source,
- does not comply with Debian rules,
- and cannot / may not be distributed through Debian channels.
Oracle supplies RPM files for “Linux x86-64” but no “.deb” files. And presumably both Oracle and also the “Debian Project” disallow redistribution of “Oracle Instant Client” components as Debian packages.
If you still need “Oracle Instant Client” components as Debian packages, converting RPM to “.deb” using “alien” together with “fakeroot” (instead of sudo) works quite straight forward — you may want to have a look here:
- https://salsa.debian.org/perl-team/modules/packages/libdbd-oracle-perl/blob/master/debian/README (using alien and fakeroot)
- https://en.wikipedia.org/wiki/Alien_(software)
- https://www.howtoforge.com/converting_rpm_to_deb_with_alien
- …/?title=Debian_package_management#rpm2deb — my wiki article somewhere …
- (obsolete: http://Jochen.Hayek.name/wp/blog-en/2018/04/13/rpm2deb — superseded by my wiki article)
- https://dba.stackexchange.com/questions/36609/how-to-install-configure-oracle-instant-client-on-ubuntu#36610
- https://github.com/eikonomega/oracle_instant_client_for_ubuntu_64bit – encapsulates the “alien” calls for you — I personally prefer to see how “alien” gets called exactly on the command line
- https://help.ubuntu.com/community/Oracle%20Instant%20Client
fakeroot vs sudo:
-
how to create a Debian package from an RPM package? “rpm2deb”
I moved the content to a wiki article, so this article is a little obsolete.
- https://en.wikipedia.org/wiki/Rpm_(software)
- https://en.wikipedia.org/wiki/Alien_(software)
- https://www.howtoforge.com/converting_rpm_to_deb_with_alien : alien -k …
- https://salsa.debian.org/perl-team/modules/packages/libdbd-oracle-perl/blob/master/debian/README
Open questions:
- how to deal with dependencies specified within the RPM package?
- …
-
Linux package managers: permissions, user/group ownerships of files in a package
- https://en.wikipedia.org/wiki/Dpkg
- https://en.wikipedia.org/wiki/Dpkg#Database: /var/lib/dpkg/…
- https://en.wikipedia.org/wiki/Rpm_(software)
- https://en.wikipedia.org/wiki/Rpm_(software)#Local_RPM_installation_database: /var/lib/rpm/…
- https://unix.stackexchange.com/questions/634/what-are-the-pros-cons-of-deb-vs-rpm
RPM based environments support verifying and resetting permissions and user/group ownerships of files in a package:
- https://www.cyberciti.biz/tips/reset-rhel-centos-fedora-package-file-permission.html –
- https://ashok-linux-tips.blogspot.de/2011/12/how-to-reset-permissions-of-installed.html
- https://www.novell.com/coolsolutions/feature/16238.html
But what about Debian based ones? On Debian there is a file for every (installed) package:
/var/lib/dpkg/info/package.list
That file only includes filenames and directory names (and no details at all). Directories are not marked as directories (as opposed to files). Files within those directories do not necessarily get listed themselves.
That file gets searched for:
- “
dpkg --search” – which Debian package does a given file belong to? - “
dpkg --listfiles” – which files belong to a given Debian package?
What about the Debian utility
cruft:- https://wiki.debian.org/Cruft
- https://en.wikipedia.org/wiki/Cruft_(software)
- https://packages.debian.org/stretch/cruft
- https://alioth.debian.org/projects/cruft/
cruftcannot really be able to provide details not contained in that file.Other Unix-like operating systems: