Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How do you tell adb to find the libncurses.so.5 shared object module?

1,422 views
Skip to first unread message

Bannon Bixby

unread,
Feb 17, 2014, 2:52:36 AM2/17/14
to
What do I need to do to enable adb to find the shared object module it needs?

I wanted to backup files using Helium on my Samsung Galaxy S3 & Ubuntu 13.10 laptop.
I installed Helium onto the Samsung Galaxy S3.
I plug in my Samsung Galaxy S3.
I start Helium on my Samsung Galaxy S3.
It tells me to go to http://www.clockworkmod.com/carbon.
I download the Linux tarball and extract it and read the README ...
The result is ...

$ uname -a
=>
Linux mypc 3.11.0-14-generic #21-Ubuntu SMP Tue Nov 12 17:04:55 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

$ ls -ltr
=>
total 1208
-rwxr-xr-x 1 351 Jan 30 2013 run.sh
-rwxr-xr-x 1 1226659 Jan 31 2013 adb
-rw-r--r-- 1 103 Feb 16 23:29 README

$ ./run.sh
=>
./adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
./adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

$ locate libncurses.so.5
=>
/lib/x86_64-linux-gnu/libncurses.so.5
/lib/x86_64-linux-gnu/libncurses.so.5.9

My question:
What do I need to do to enable adb to find the shared object module it needs?
Message has been deleted

Richard Kettlewell

unread,
Feb 17, 2014, 3:41:26 AM2/17/14
to
Bannon Bixby <banno...@this.is.invalid> writes:
> What do I need to do to enable adb to find the shared object module it
> needs?
>
> I wanted to backup files using Helium on my Samsung Galaxy S3 & Ubuntu 13.10 laptop.
> I installed Helium onto the Samsung Galaxy S3.
> I plug in my Samsung Galaxy S3.
> I start Helium on my Samsung Galaxy S3.
> It tells me to go to http://www.clockworkmod.com/carbon.
> I download the Linux tarball and extract it and read the README ...
> The result is ...
>
> $ uname -a
> =>
> Linux mypc 3.11.0-14-generic #21-Ubuntu SMP Tue Nov 12 17:04:55 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
>
> $ ls -ltr
> =>
> total 1208
> -rwxr-xr-x 1 351 Jan 30 2013 run.sh
> -rwxr-xr-x 1 1226659 Jan 31 2013 adb
> -rw-r--r-- 1 103 Feb 16 23:29 README

That’s a 32-bit executable.

> $ ./run.sh
> =>
> ./adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
> ./adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
>
> $ locate libncurses.so.5
> =>
> /lib/x86_64-linux-gnu/libncurses.so.5
> /lib/x86_64-linux-gnu/libncurses.so.5.9

That’s a 64-bit library.

> My question:
> What do I need to do to enable adb to find the shared object module it needs?

Install the 32-bit version of the library (probably lib32ncurses5).

--
http://www.greenend.org.uk/rjk/

Bannon Bixby

unread,
Feb 17, 2014, 6:25:22 PM2/17/14
to
On Mon, 17 Feb 2014 08:41:16 +0000, lipska the kat wrote:

> Have you seen this?
> http://askubuntu.com/questions/143774/android-sdk-having-trouble-with-adb

That's a nice thread, but, it seems too off base for me since it's a
different operating system version and a different problem (they're trying
to use the Android SDK, while I'm trying to run Helium backup).

Although I do agree both problems seem to involve adb, and, specifically,
missing 32-bit libraries that adb appears to need in order to run.

Their solution is to install almost everything that contains 32-bit libraries.

For example, all these are suggested (and some deprecated):
$ sudo apt-get install ia32-libs
$ sudo apt-get install libncurses5:i386
$ sudo apt-get install libstdc++6:i386
$ sudo apt-get install libncurses5
etc.

But, when I tried just the first solution, bearing in mind my OS is a
different version than that of that thread, I got the following:


$ sudo apt-get install ia32-libs
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package ia32-libs 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
However, the following packages replace it:
lib32z1 lib32ncurses5 lib32bz2-1.0

E: Package 'ia32-libs' has no installation candidate

Bannon Bixby

unread,
Feb 17, 2014, 6:29:03 PM2/17/14
to
On Mon, 17 Feb 2014 08:41:26 +0000, Richard Kettlewell wrote:

> Install the 32-bit version of the library (probably lib32ncurses5).

I wonder if Helium backup isn't ready for prime time yet, or if I did
something wrong?

Here's what happened, on 64-bit Ubuntu 13.10, when I followed suggestions:

$ sudo apt-get install lib32ncurses5

Then, I tried the Helium backup shell command again:

$ ./run.sh
error: device not found
adb README run.sh daemon not running. starting it now on port 5037 adb README run.sh adb README run.sh daemon started successfully adb README run.sh
error: device not found


Note: this is what that shell command does:
$ cat run.sh
BASE=$(dirname $0)
pkg=$($BASE/adb shell pm path com.koushikdutta.backup)
# apparently pm path appends a carriage return which screws
# up the class name in dalvikvm invocation
pkg=$(echo $pkg | cut -d : -f 2 | sed s/\\r//g)
echo $pkg
$BASE/adb shell << EOF
CLASSPATH=$pkg app_process /system/bin com.koushikdutta.shellproxy.ShellRunner2 $@ &
exit

Bannon Bixby

unread,
Feb 17, 2014, 6:38:30 PM2/17/14
to
On Mon, 17 Feb 2014 23:29:03 +0000, Bannon Bixby wrote:

> $ ./run.sh
> error: device not found
> adb README run.sh daemon not running. starting it now on port 5037 adb README run.sh adb README run.sh daemon started successfully adb README run.sh
> error: device not found

So, I tried running "adb" (whatever that is), and this is what happened:

$ adb
The program 'adb' is currently not installed. You can install it by typing:
sudo apt-get install android-tools-adb

So, I installed android-tools-adb:
$ sudo apt-get install android-tools-adb

Then I ran the Helium backup shell script again:
$ ./run.sh
error: device not found

error: device not found

So, googling, I found this article:
http://blog.timmattison.com/archives/2011/11/02/how-to-install-googles-android-eclipse-plugin-and-or-adb-on-64-bit-debian-ubuntu/

Which suggests the following, which I ran while Helium was running on the phone:
$ sudo apt-get install lib32ncurses5 lib32stdc++6

So, going back to Helium backup:
$ ./run.sh
error: device offline

error: device offline

Methinks Helium isn't quite ready for prime time.

QUESTION MORPH:
Does anyone know of a good Android backup app that does NOT require root?

akshu...@gmail.com

unread,
Nov 13, 2014, 3:25:44 PM11/13/14
to
Ran into the same issue on a Ubuntu Trusty server. When the "device offline" message popped up, my phone asked if I wanted to accept the incoming connection as trusted. I said yes, then ran the script again. It worked perfectly.

Helium seems to work fine, in that it is itself a work-around for non-root devices. The issue is that the documentation is not complete (ie for Linux x64 machines) nor is it up-to-date. I'm a big fan of Koush, but documentation is def an opportunity for his apps.
0 new messages