LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - ARM
User Name
Password
Slackware - ARM This forum is for the discussion of Slackware ARM.

Notices


Reply
  Search this Thread
Old 06-07-2019, 12:57 AM   #1
anon070
Member
 
Registered: Feb 2016
Posts: 35

Rep: Reputation: Disabled
Gnupg2 runtime error on current


I'm getting a run time error on -current:

# gpg2 --verify
gpg2: error while loading shared libraries: libicui18n.so.63: cannot open shared object file: No such file or directory

Using gpg version 1 seems to work.
 
Old 06-07-2019, 01:54 AM   #2
ponce
LQ Guru
 
Registered: Aug 2004
Location: Pisa, Italy
Distribution: Slackware
Posts: 7,097

Rep: Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174Reputation: 4174
it seems like you have some old version of the gnupg2 package or of the libraries it depends to still linking to the previous icu4c libraries installed: be sure to have installed the latest updates for gpg2 and all the libraries in your system that it uses (to be safe, IMHO, you better apply all the updates in current).

Last edited by ponce; 06-07-2019 at 11:21 AM.
 
Old 06-10-2019, 03:42 AM   #3
anon070
Member
 
Registered: Feb 2016
Posts: 35

Original Poster
Rep: Reputation: Disabled
I see to have the most recent packages. Anyone else having this issue?

/var/log/packages/gnupg2-2.2.16-arm-1
/var/log/packages/icu4c-64.2-arm-1
 
Old 06-10-2019, 06:48 AM   #4
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,542

Rep: Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310
Hello

These are the most recent packages on the primary build server. As you can see, it's linked to a newer icuuc library.
Check the md5sum of the gpg2 binary - it will probably be different.
Perhaps on your machine the package tried to update, but it failed to write out the new binary to the file system, but updated the package entry?
Code:
root@zippy:~/armedslack/distrotools# ls -la /var/lib/pkgtools/packages/gnupg2-2.2.16-arm-1
-rw-r--r-- 1 root root 7261 May 29 21:17 /var/lib/pkgtools/packages/gnupg2-2.2.16-arm-1
root@zippy:~/armedslack/distrotools# ldd $(which gpg2)
	linux-vdso.so.1 (0xbeda2000)
	libz.so.1 => /lib/libz.so.1 (0xb6ebc000)
	libbz2.so.1 => /lib/libbz2.so.1 (0xb6e9d000)
	libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xb6d90000)
	libdl.so.2 => /lib/libdl.so.2 (0xb6d7d000)
	libgcrypt.so.20 => /lib/libgcrypt.so.20 (0xb6cab000)
	libgpg-error.so.0 => /lib/libgpg-error.so.0 (0xb6c82000)
	libreadline.so.8 => /usr/lib/libreadline.so.8 (0xb6c33000)
	libassuan.so.0 => /usr/lib/libassuan.so.0 (0xb6c14000)
	libc.so.6 => /lib/libc.so.6 (0xb6aad000)
	libicui18n.so.64 => /usr/lib/libicui18n.so.64 (0xb684a000)
	libicuuc.so.64 => /usr/lib/libicuuc.so.64 (0xb66c4000)
	libicudata.so.64 => /usr/lib/libicudata.so.64 (0xb4c71000)
	libm.so.6 => /lib/libm.so.6 (0xb4c04000)
	libpthread.so.0 => /lib/libpthread.so.0 (0xb4bda000)
	/lib/ld-linux-armhf.so.3 (0xb6f1d000)
	libtinfo.so.6 => /usr/lib/libtinfo.so.6 (0xb4ba8000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb4a12000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb49e3000)
root@zippy:~/armedslack/distrotools# openssl md5 $(which gpg2)
MD5(/usr/bin/gpg2)= accc005e918f135f7ab8bb3554a677c6
root@zippy:~/armedslack/distrotools#

Try reinstalling the gpg2 package.

Last edited by drmozes; 06-10-2019 at 06:59 AM.
 
1 members found this post helpful.
Old 06-10-2019, 07:35 AM   #5
anon070
Member
 
Registered: Feb 2016
Posts: 35

Original Poster
Rep: Reputation: Disabled
This feels odd, the md5 checksum looks correct.
Code:
# which gpg2
/usr/bin/gpg2
#ldd `which gpg2`
	linux-vdso.so.1 (0x7eefe000)
	libz.so.1 => /lib/libz.so.1 (0x76e97000)
	libbz2.so.1 => /lib/libbz2.so.1 (0x76e78000)
	libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x76d6d000)
	libdl.so.2 => /lib/libdl.so.2 (0x76d5a000)
	libgcrypt.so.20 => /lib/libgcrypt.so.20 (0x76c88000)
	libgpg-error.so.0 => /lib/libgpg-error.so.0 (0x76c5f000)
	libreadline.so.8 => /usr/lib/libreadline.so.8 (0x76c10000)
	libassuan.so.0 => /usr/lib/libassuan.so.0 (0x76bf1000)
	libc.so.6 => /lib/libc.so.6 (0x76a8a000)
	libicui18n.so.63 => not found
	libicuuc.so.63 => not found
	libicudata.so.63 => not found
	libm.so.6 => /lib/libm.so.6 (0x76a1d000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x769f3000)
	/lib/ld-linux-armhf.so.3 (0x76ef9000)
	libtinfo.so.6 => /usr/lib/libtinfo.so.6 (0x769c1000)
#md5sum `which gpg2`
accc005e918f135f7ab8bb3554a677c6  /usr/bin/gpg2
#sha256 `which gpg2`
# removepkg gnupg2
...
#md5sum gnupg2*.txz
3abd05dd9d995b570aabee90d5e5083c  gnupg2-2.2.16-arm-1.txz
#sha256sum gnupg2-2.2.16-arm-1.txz
024d3e0ea217117681729f3e8f9d794de347d55c3e227603623183513902ebfe  gnupg2-2.2.16-arm-1.txz
#installpkg gnupg2-2.2.16-arm-1.txz
...
#ldd `which gpg2`
	linux-vdso.so.1 (0x7efcb000)
	libz.so.1 => /lib/libz.so.1 (0x76edb000)
	libbz2.so.1 => /lib/libbz2.so.1 (0x76ebc000)
	libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x76db1000)
	libdl.so.2 => /lib/libdl.so.2 (0x76d9e000)
	libgcrypt.so.20 => /lib/libgcrypt.so.20 (0x76ccc000)
	libgpg-error.so.0 => /lib/libgpg-error.so.0 (0x76ca3000)
	libreadline.so.8 => /usr/lib/libreadline.so.8 (0x76c54000)
	libassuan.so.0 => /usr/lib/libassuan.so.0 (0x76c35000)
	libc.so.6 => /lib/libc.so.6 (0x76ace000)
	libicui18n.so.63 => not found
	libicuuc.so.63 => not found
	libicudata.so.63 => not found
	libm.so.6 => /lib/libm.so.6 (0x76a61000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x76a37000)
	/lib/ld-linux-armhf.so.3 (0x76f3d000)
	libtinfo.so.6 => /usr/lib/libtinfo.so.6 (0x76a05000)
#md5sum `which gpg2`
accc005e918f135f7ab8bb3554a677c6  /usr/bin/gpg2
#sha256sum `which gpg2`
5a98963c1ed05cec7c54b7eeb89340d52887506a92abd4cac14fb4f4ea288e87  /usr/bin/gpg2
#gpg2 --verify
gpg2: error while loading shared libraries: libicui18n.so.63: cannot open shared object file: No such file or directory

Last edited by anon070; 06-10-2019 at 07:37 AM.
 
Old 06-10-2019, 10:52 AM   #6
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,542

Rep: Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310
Try reinstalling or upgrading the sqlite package.
 
Old 06-10-2019, 11:44 AM   #7
drmozes
Slackware Contributor
 
Registered: Apr 2008
Distribution: Slackware
Posts: 1,542

Rep: Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310Reputation: 1310
Btw, this is how I figured this out. I removed the icu4c package to simulate breakage:
Code:
root@mojo:~/armedslack/distrotools# ldd $(which gpg2) | grep "not found" | awk '{print $1}'
libicui18n.so.64
libicuuc.so.64
libicudata.so.64
We know that this library is missing.

Is it directly linked to gpg2?
Code:
root@mojo:~/armedslack/distrotools# readelf -d $(which gpg2) | grep NEEDED
 0x00000001 (NEEDED)                     Shared library: [libz.so.1]
 0x00000001 (NEEDED)                     Shared library: [libbz2.so.1]
 0x00000001 (NEEDED)                     Shared library: [libsqlite3.so.0]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libgcrypt.so.20]
 0x00000001 (NEEDED)                     Shared library: [libgpg-error.so.0]
 0x00000001 (NEEDED)                     Shared library: [libreadline.so.8]
 0x00000001 (NEEDED)                     Shared library: [libassuan.so.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]
root@mojo:~/armedslack/distrotools#
No, so it must be linked directly to (at least) one of the above.

Because ldd doesn't tell us where those libraries are (well it can, but it seems to be more work parsing it than just finding them), we need to find the path to each library (most will be in /usr/lib). Fortunately, the number of system-wide search paths is usually only a handful.
Code:
root@mojo:~/armedslack/distrotools# ld --verbose | grep SEARCH_DIR | tr -s ' ;' \\012 | sed -e 's?SEARCH_DIR("?\ ?g' -e 's?")? ?g' | xargs
/usr/arm-slackware-linux-gnueabihf/lib /usr/local/lib /lib /usr/lib
Let's look at the first one:

Code:
root@mojo:~/armedslack/distrotools# objdump -x /usr/lib/libz.so.1 | grep NEEDED
  NEEDED               libc.so.6
That terminates at glibc, and has no other direct dependencies. It's not this one.

Let's go to the 3rd (because I know it's this one ;-) )
Code:
root@mojo:~/armedslack/distrotools# objdump -x /usr/lib/libsqlite3.so.0 | grep NEEDED
  NEEDED               libdl.so.2
  NEEDED               libicui18n.so.64
  NEEDED               libicuuc.so.64
  NEEDED               libicudata.so.64
  NEEDED               libm.so.6
  NEEDED               libz.so.1
  NEEDED               libpthread.so.0
  NEEDED               libc.so.6
There we have it!
Which package does it belong to? No point looking on the system because it's already missing (unless the file was deleted outside of the awareness of pkgtools).
Let's look in the MANIFEST.bz2 file within the 'slackware' package series directory:

Code:
root@mojo:~/armedslack/distrotools# cd ~/ac/slackware
root@mojo:~/armedslack/distrotools# bzcat MANIFEST.bz2 | grep libicuuc.so.64
-rwxr-xr-x root/root   1526236 2019-04-19 19:49 usr/lib/libicuuc.so.64.2
And you can find which package it is there, and install or reinstall, or upgrade it.
It may be that it's also directly linked to a few other packages, so you may need to iterate through this a few times before it's fixed.

Last edited by drmozes; 06-10-2019 at 11:48 AM.
 
2 members found this post helpful.
Old 06-10-2019, 11:10 PM   #8
gus3
Member
 
Registered: Jun 2014
Distribution: Slackware
Posts: 490

Rep: Reputation: Disabled
Thanks for that search algorithm. I've done it more than a few times.

The only tweak I'll offer is to save a few keystrokes:
Code:
root@localhost:~/armedslackhf/slackdir# bzgrep libicuuc.so.64 MANIFEST.bz2
All the regular Unix compressors offer orthogonal tie-ins with grep. Be careful about zipgrep, though; the ZIP system operates on file hierarchies, not streams.
 
Old 06-11-2019, 01:54 AM   #9
anon070
Member
 
Registered: Feb 2016
Posts: 35

Original Poster
Rep: Reputation: Disabled
Thanks very much for the explanations guys!
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Thunderbird Email Encryption with GnuPG2 LXer Syndicated Linux News 0 06-20-2014 07:42 AM
how to setup thunderbird with enigmail and gnupg2 & kgpg on fresh opensuse 12.3 sayhello_to_the_world Linux - Newbie 0 05-25-2013 08:45 PM
[SOLVED] GnuPG2 -> no pinentry agambier Linux - Software 0 12-22-2010 03:07 AM
gnupg vs gnupg2 - Package dependencies don't make sense. MindOfMercury Debian 6 12-04-2007 04:45 PM
LXer: Debian update for gnupg2 LXer Syndicated Linux News 0 07-23-2006 02:21 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - ARM

All times are GMT -5. The time now is 02:05 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration