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~, 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 (  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 ( ran fine and connected properly.

The dependencies were satisfied:

ldd agnclientd =>  (0xf7782000) => /opt/agns/lib/ (0xf775c000) => /lib/i386-linux-gnu/ (0xf7743000) => /opt/agns/lib/ (0xf7739000) => /lib/i386-linux-gnu/ (0xf75eb000)
/lib/ (0xf7783000) => /usr/lib/i386-linux-gnu/ (0xf7498000) => /lib/i386-linux-gnu/ (0xf7494000) => /lib/i386-linux-gnu/ (0xf747b000) => /lib/i386-linux-gnu/ (0xf7453000)

ldd agnLogd =>  (0xf76f7000) => /lib/i386-linux-gnu/ (0xf7586000)
/lib/ (0xf76f8000)

ldd NetVPN =>  (0xf7792000) => /lib32/ (0xf7777000) => /lib32/ (0xf7729000) => /lib32/ (0xf75b0000) => /lib32/ (0xf75ac000) => /lib32/ (0xf744a000)
/lib/ (0xf7793000) => /lib/i386-linux-gnu/ (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 =>  (0xf7794000) => /opt/agns/lib/ (0xf776e000) => /opt/agns/lib/ (0xf7765000) => /lib/i386-linux-gnu/ (0xf774b000) => /lib/i386-linux-gnu/ (0xf7725000) => /lib/i386-linux-gnu/ (0xf7721000) => not found => not found => not found => not found => not found => not found => not found => not found => not found => not found => not found => /usr/lib/i386-linux-gnu/ (0xf75cc000) => /lib/i386-linux-gnu/ (0xf747d000)
/lib/ (0xf7795000) => /lib/i386-linux-gnu/ (0xf7464000) => /lib/i386-linux-gnu/ (0xf743d000)

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

apt-get install libgtk2.0-0:i386

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

ldd agnclient =>  (0xf7735000) => /opt/agns/lib/ (0xf770f000) => /opt/agns/lib/ (0xf7706000) => /lib/i386-linux-gnu/ (0xf76ec000) => /lib/i386-linux-gnu/ (0xf76c6000) => /lib/i386-linux-gnu/ (0xf76c2000) => /usr/lib/i386-linux-gnu/ (0xf724f000) => /usr/lib/i386-linux-gnu/ (0xf719e000) => /usr/lib/i386-linux-gnu/ (0xf717b000) => /usr/lib/i386-linux-gnu/ (0xf7159000) => /usr/lib/i386-linux-gnu/ (0xf7150000) => /usr/lib/i386-linux-gnu/ (0xf7142000) => /usr/lib/i386-linux-gnu/ (0xf70f6000) => /usr/lib/i386-linux-gnu/ (0xf70a3000) => /usr/lib/i386-linux-gnu/ (0xf709e000) => /usr/lib/i386-linux-gnu/ (0xf709b000) => /lib/i386-linux-gnu/ (0xf6f9e000) => /usr/lib/i386-linux-gnu/ (0xf6e4b000) => /lib/i386-linux-gnu/ (0xf6cfc000)
/lib/ (0xf7736000) => /usr/lib/i386-linux-gnu/ (0xf6cef000) => /usr/lib/i386-linux-gnu/ (0xf6bb7000) => /usr/lib/i386-linux-gnu/ (0xf6bb4000) => /usr/lib/i386-linux-gnu/ (0xf6bb1000) => /usr/lib/i386-linux-gnu/ (0xf6baa000) => /usr/lib/i386-linux-gnu/ (0xf6a9c000) => /usr/lib/i386-linux-gnu/ (0xf693c000) => /usr/lib/i386-linux-gnu/ (0xf690e000) => /usr/lib/i386-linux-gnu/ (0xf6872000) => /usr/lib/i386-linux-gnu/ (0xf683b000) => /usr/lib/i386-linux-gnu/ (0xf6829000) => /usr/lib/i386-linux-gnu/ (0xf6820000) => /usr/lib/i386-linux-gnu/ (0xf681d000) => /usr/lib/i386-linux-gnu/ (0xf680e000) => /usr/lib/i386-linux-gnu/ (0xf6805000) => /usr/lib/i386-linux-gnu/ (0xf67fb000) => /lib/i386-linux-gnu/ (0xf67f2000) => /lib/i386-linux-gnu/ (0xf67c8000) => /usr/lib/i386-linux-gnu/ (0xf67b3000) => /usr/lib/i386-linux-gnu/ (0xf67a9000) => /lib/i386-linux-gnu/ (0xf676b000) => /lib/i386-linux-gnu/ (0xf6752000) => /lib/i386-linux-gnu/ (0xf672b000) => /usr/lib/i386-linux-gnu/ (0xf6708000) => /usr/lib/i386-linux-gnu/ (0xf6670000) => /usr/lib/i386-linux-gnu/ (0xf666c000) => /usr/lib/i386-linux-gnu/ (0xf6661000) => /lib/i386-linux-gnu/ (0xf6641000) => /lib/i386-linux-gnu/ (0xf662c000) => /lib/i386-linux-gnu/ (0xf6601000) => /usr/lib/i386-linux-gnu/ (0xf65fe000) => /usr/lib/i386-linux-gnu/ (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 (only need to run once unless you terminate the services or reboot)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/agns/lib
export PATH=$PATH:.:/opt/agns/bin:/opt/agns/lib:/opt/agns/bin/skin

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


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

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

No comments:

Post a Comment