Labels

lego (12) Linux (39) pi (20) Thinkpads (4)

Tuesday 22 January 2013

AT&T Global Network Client VPN Multiarch 64bit Install

I recently upgraded to Update Pack 6 on LMDE (Linux Mint Debian Edition).  Part of the move to Debian Wheezy (Debian 7) is a move from ia32 to multiarch to handle 32bit libraries on a 64bit system.

During the conversion from ia32 to multiarch was the need to reinstall my 32bit applications.  Since AT&T Global Network Client VPN (agnclient) is 32bit-only, I encountered some new issues not previously encountered with ia32.

These issues are relevant only for Debian (including derivatives including Ubuntu) 64bit systems.  Install of the software on a 32bit system was without  issue.

Issue 1: libssl0.9.8

When I went to install agnclient_1.0~2.0.1.3003-3_i386.deb, I encountered an issue with missing dependency libssl0.9.8 which was listed as unsatisfiable (not going to be installed).  When I checked Synaptic, it listed both libssl1.0.0 and libssl0.9.8 installed.

When I try to install libssl1.0.0:i386, it indicates it is already installed.  If I try to install  libssl0.9.8:i386 I get the following error:

apt-get install libssl0.9.8:i386

Reading package lists... Done
Building dependency tree 
Reading state information... Done
Package libssl0.9.8:i386 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libssl0.9.8:i386' has no installation candidate

I manually located libssl0.9.8_0.9.8o-4squeeze13_i386.deb from the repository in LMDE ( http://debian.linuxmint.com/latest/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze13_i386.deb).  I installed this .deb manually (dpkg -i libssl0.9.8_0.9.8o-4squeeze13_i386.deb).  Afterwards the depedency was resolved and the application installed successfully.

The terminal version of the client (NetVPN.sh) ran fine and connected properly.

The dependencies were satisfied:


ldd agnclientd
linux-gate.so.1 =>  (0xf7782000)
libagnLogc.so.1 => /opt/agns/lib/libagnLogc.so.1 (0xf775c000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7743000)
libagnc.so.1 => /opt/agns/lib/libagnc.so.1 (0xf7739000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf75eb000)
/lib/ld-linux.so.2 (0xf7783000)
libxml2.so.2 => /usr/lib/i386-linux-gnu/libxml2.so.2 (0xf7498000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7494000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf747b000)
liblzma.so.5 => /lib/i386-linux-gnu/liblzma.so.5 (0xf7453000)



ldd agnLogd
linux-gate.so.1 =>  (0xf76f7000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7586000)
/lib/ld-linux.so.2 (0xf76f8000)


ldd NetVPN
linux-gate.so.1 =>  (0xf7792000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf7777000)
libssl.so.4 => /lib32/libssl.so.4 (0xf7729000)
libcrypto.so.4 => /lib32/libcrypto.so.4 (0xf75b0000)
libdl.so.2 => /lib32/libdl.so.2 (0xf75ac000)
libc.so.6 => /lib32/libc.so.6 (0xf744a000)
/lib/ld-linux.so.2 (0xf7793000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf7410000)





Issue 2: agnclient (GUI) not working; missing undeclared dependencies 

There seems to be a bunch of libraries missing for the GUI version of the application that is included in the .deb installer.  The GUI doesn't run, and clearly is missing libraries:


ldd agnclient
linux-gate.so.1 =>  (0xf7794000)
libagnLogc.so.1 => /opt/agns/lib/libagnLogc.so.1 (0xf776e000)
libagnc.so.1 => /opt/agns/lib/libagnc.so.1 (0xf7765000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf774b000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7725000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7721000)
libgtk-x11-2.0.so.0 => not found
libgdk-x11-2.0.so.0 => not found
libatk-1.0.so.0 => not found
libgdk_pixbuf-2.0.so.0 => not found
libpangoxft-1.0.so.0 => not found
libpangox-1.0.so.0 => not found
libpango-1.0.so.0 => not found
libgobject-2.0.so.0 => not found
libgmodule-2.0.so.0 => not found
libgthread-2.0.so.0 => not found
libglib-2.0.so.0 => not found
libxml2.so.2 => /usr/lib/i386-linux-gnu/libxml2.so.2 (0xf75cc000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf747d000)
/lib/ld-linux.so.2 (0xf7795000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf7464000)
liblzma.so.5 => /lib/i386-linux-gnu/liblzma.so.5 (0xf743d000)

The solution is to install libgtk2.0-0:i386 which replaces the now removed ia32-libs-gtk.

Run:
apt-get install libgtk2.0-0:i386

Now if you check the dependencies using ldd, all should be found:


ldd agnclient
linux-gate.so.1 =>  (0xf7735000)
libagnLogc.so.1 => /opt/agns/lib/libagnLogc.so.1 (0xf770f000)
libagnc.so.1 => /opt/agns/lib/libagnc.so.1 (0xf7706000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf76ec000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf76c6000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf76c2000)
libgtk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0 (0xf724f000)
libgdk-x11-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so.0 (0xf719e000)
libatk-1.0.so.0 => /usr/lib/i386-linux-gnu/libatk-1.0.so.0 (0xf717b000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0 (0xf7159000)
libpangoxft-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangoxft-1.0.so.0 (0xf7150000)
libpangox-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangox-1.0.so.0 (0xf7142000)
libpango-1.0.so.0 => /usr/lib/i386-linux-gnu/libpango-1.0.so.0 (0xf70f6000)
libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xf70a3000)
libgmodule-2.0.so.0 => /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0 (0xf709e000)
libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xf709b000)
libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xf6f9e000)
libxml2.so.2 => /usr/lib/i386-linux-gnu/libxml2.so.2 (0xf6e4b000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf6cfc000)
/lib/ld-linux.so.2 (0xf7736000)
libpangocairo-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0 (0xf6cef000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf6bb7000)
libXcomposite.so.1 => /usr/lib/i386-linux-gnu/libXcomposite.so.1 (0xf6bb4000)
libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xf6bb1000)
libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xf6baa000)
libcairo.so.2 => /usr/lib/i386-linux-gnu/libcairo.so.2 (0xf6a9c000)
libgio-2.0.so.0 => /usr/lib/i386-linux-gnu/libgio-2.0.so.0 (0xf693c000)
libpangoft2-1.0.so.0 => /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0 (0xf690e000)
libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xf6872000)
libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xf683b000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf6829000)
libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xf6820000)
libXinerama.so.1 => /usr/lib/i386-linux-gnu/libXinerama.so.1 (0xf681d000)
libXi.so.6 => /usr/lib/i386-linux-gnu/libXi.so.6 (0xf680e000)
libXrandr.so.2 => /usr/lib/i386-linux-gnu/libXrandr.so.2 (0xf6805000)
libXcursor.so.1 => /usr/lib/i386-linux-gnu/libXcursor.so.1 (0xf67fb000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf67f2000)
libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xf67c8000)
libXft.so.2 => /usr/lib/i386-linux-gnu/libXft.so.2 (0xf67b3000)
libffi.so.5 => /usr/lib/i386-linux-gnu/libffi.so.5 (0xf67a9000)
libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf676b000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xf6752000)
liblzma.so.5 => /lib/i386-linux-gnu/liblzma.so.5 (0xf672b000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf6708000)
libpixman-1.so.0 => /usr/lib/i386-linux-gnu/libpixman-1.so.0 (0xf6670000)
libxcb-shm.so.0 => /usr/lib/i386-linux-gnu/libxcb-shm.so.0 (0xf666c000)
libxcb-render.so.0 => /usr/lib/i386-linux-gnu/libxcb-render.so.0 (0xf6661000)
libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xf6641000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf662c000)
libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf6601000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf65fe000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf65f8000)


Special Notes:

I removed the services (agnclientd and agnLogd) from loading manually (in /etc/init.d) since I don't use the VPN all the time (I wish to start it only when the need arises to connect).  Thus, I have two special scripts to start the services and to log in, when I need to.

To start the services manually in script form, here is a sample startup.sh (only need to run once unless you terminate the services or reboot)


#!/bin/sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/agns/lib
export PATH=$PATH:.:/opt/agns/bin:/opt/agns/lib:/opt/agns/bin/skin
agnclientd
agnLogd

To connect the VPN client (establish a tunnel connection) (without using the GUI):

#!/bin/sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib32
./NetVPN.sh

Remember to update NetVPN.sh to include your account (NETVPN_ACCOUNT), username (NETVPN_USERNAME), password (NETVPN_PASSWORD) and remove the comment from the line SERVICE_MANAGER_ADDRESS="204.146.172.230" to allow the client to connect.

To terminate the client, you can CTRL-C while connected.

No comments:

Post a Comment