dlopen cannot load shared library
Mark Shuttleworth
mark at ubuntu.com
Fri Feb 3 12:59:42 UTC 2017
On 03/02/17 12:41, Loïc Minier wrote:
> In classic mode, you see libraries from your classic Ubuntu system
> including X11; in devmode/confined mode, you only see system libraries
> from the core snap which doesn't contain X11.
One more point. If you try this command you will be running a shell
"inside the snap", in other words, you will be experiencing the
filesystem exactly as your snap sees it.
$ snap run --shell <snap>
Now you are living inside the container that is setup just for that
snap. It's using the same sorts of mechanisms as LXD and Docker to keep
processes apart, but it is also setup in such a way that files can be
shared across snaps. You can see the environment variables that snapd
has setup so snap processes can find out where they can write data etc:
$ set | grep SNAP
SNAP=/snap/etcd/x5
SNAP_ARCH=amd64
SNAP_COMMON=/var/snap/etcd/common
SNAP_DATA=/var/snap/etcd/x5
SNAP_LIBRARY_PATH=/var/lib/snapd/lib/gl:
SNAP_NAME=etcd
SNAP_REEXEC=
SNAP_REVISION=x5
SNAP_USER_COMMON=/home/mark/snap/etcd/common
SNAP_USER_DATA=/home/mark/snap/etcd/x5
SNAP_VERSION=2.3.7
And if you start using 'ls' to poke around the filesystem, you quickly
see that you are in your own special world:
$ ls /
ls: cannot open directory '/': Permission denied
$ sudo ls /
bash: /usr/bin/sudo: Permission denied
$ ls -l /lib/
total 74
drwxr-xr-x 2 root root 52 Jan 13 20:41 apparmor
drwxr-xr-x 2 root root 57 Jan 13 20:41 bridge-utils
drwxr-xr-x 2 root root 40 Jan 13 20:41 cgmanager
drwxr-xr-x 3 root root 89 Jan 13 20:41 crda
drwxr-xr-x 2 root root 3 Jan 13 20:40 firmware
drwxr-xr-x 2 root root 1032 Jan 13 20:41 i386-linux-gnu
drwxr-xr-x 2 root root 59 Jan 13 20:41 ifupdown
drwxr-xr-x 2 root root 51 Jan 13 20:41 init
-rwxr-xr-x 1 root root 70952 Sep 22 18:34
klibc-k3La8MUnuzHQ0_kG8hokcGAC0PA.so
lrwxrwxrwx 1 root root 25 Nov 16 22:51 ld-linux.so.2 ->
i386-linux-gnu/ld-2.23.so
drwxr-xr-x 3 root root 61 Jan 13 20:41 lsb
drwxr-xr-x 2 root root 35 Jan 13 20:41 modprobe.d
drwxr-xr-x 6 root root 4096 Jan 26 10:15 modules
drwxr-xr-x 2 root root 31 Jan 13 20:41 netplan
drwxr-xr-x 2 root root 35 Jan 13 20:41 resolvconf
drwxr-xr-x 8 root root 1057 Jan 13 20:41 systemd
drwxr-xr-x 15 root root 132 Jan 13 20:41 terminfo
drwxr-xr-x 4 root root 298 Jan 13 20:41 udev
drwxr-xr-x 3 root root 4281 Jan 13 20:41 x86_64-linux-gnu
drwxr-xr-x 2 root root 2531 Jan 13 20:41 xtables
So you see, this is a super-minimal "core" with just a few libraries.
You can find your snap at $SNAP:
$ echo $SNAP
/snap/foo/7
$ ls -lR $SNAP
/snap/foo/x5:
... <your snap tree here>
Hope that's a useful introduction. It's a lot of fun once you realise
that you have TOTAL control over your snap, but everything else is very
structured for you.
Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/snapcraft/attachments/20170203/11b9a99f/attachment.html>
More information about the Snapcraft
mailing list