I'm trying to get the "traceroute" package to install properly inside my SNAP. 
To do this I've added

traceroute

to the

    stage-packages:

line in my snapcraft.yaml. The files to get put into the;

/snap/openswitch-appliance/x1/...

$SNAP tree and indeed I can then see them from inside the SNAP.

root@Snappy-Appliance:/home/netop# find $SNAP -name "traceroute*"
/snap/openswitch-appliance/x1/usr/bin/traceroute-nanog
/snap/openswitch-appliance/x1/usr/bin/traceroute.db
/snap/openswitch-appliance/x1/usr/bin/traceroute6.db
/snap/openswitch-appliance/x1/usr/share/doc/traceroute
/snap/openswitch-appliance/x1/usr/share/man/man1/traceroute-nanog.1.gz
/snap/openswitch-appliance/x1/usr/share/man/man1/traceroute.db.1.gz
/snap/openswitch-appliance/x1/usr/share/man/man1/traceroute6.db.1.gz

But the problem is that the installation isn't properly finished because the 
the postinst stage didn't get run. If you look at the postinst stage for the 
traceroute package you'll see what I've listed below.

In other words for this package to work it is meant to build some softlinks to 
/etc so that "traceroute" is actually made available.

How am I meant to do this is the SNAP world?

Thanks,

Dave Garrod

% cat DEBIAN/postinst
#!/bin/sh

set -e

case "${1}" in
        configure)
                update-alternatives --install \
                        /usr/bin/traceroute traceroute /usr/bin/traceroute.db 
100 \
                        --slave /usr/sbin/traceroute traceroute.sbin \
                                /usr/bin/traceroute.db \
                        --slave /usr/share/man/man1/traceroute.1.gz 
traceroute.1.gz \
                                /usr/share/man/man1/traceroute.db.1.gz

                for _ALTERNATIVE in traceroute6 lft traceproto
                do
                        update-alternatives --install \
                                /usr/bin/${_ALTERNATIVE} ${_ALTERNATIVE} 
/usr/bin/${_ALTERNATIVE}.db 100 \
                                --slave 
/usr/share/man/man1/${_ALTERNATIVE}.1.gz ${_ALTERNATIVE}.1.gz \
                                        
/usr/share/man/man1/${_ALTERNATIVE}.db.1.gz
                done

                for _ALTERNATIVE in tcptraceroute
                do
                        update-alternatives --install \
                                /usr/sbin/${_ALTERNATIVE} ${_ALTERNATIVE} 
/usr/sbin/${_ALTERNATIVE}.db 100 \
                                --slave 
/usr/share/man/man8/${_ALTERNATIVE}.8.gz ${_ALTERNATIVE}.8.gz \
                                        
/usr/share/man/man8/${_ALTERNATIVE}.db.8.gz
                done
                ;;

        abort-upgrade|abort-remove|abort-deconfigure)

                ;;

        *)
                echo "postinst called with unknown argument \`${1}'" >&2
                exit 1
                ;;
esac



exit 0


________________________________

DISCLAIMER:
This e-mail and any attachments to it may contain confidential and proprietary 
material and is solely for the use of the intended recipient. Any review, use, 
disclosure, distribution or copying of this transmittal is prohibited except by 
or on behalf of the intended recipient. If you have received this transmittal 
in error, please notify the sender and destroy this e-mail and any attachments 
and all copies, whether electronic or printed.
-- 
Snapcraft mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/snapcraft

Reply via email to