LELK-AN-001: Package installation using opkg

From DAVE Developer's Wiki
Jump to: navigation, search
Info Box
Lizard.jpg Applies to Lizard

Introduction

Thanks to the opkg packet manager installed on Yocto built root file system, Lizard module allows to install new packages (if available).

This task can be performed using DAVE Yocto pre-built package server available at the http://yocto.dave.eu address.

Installing packages on target

To use opkg at runtime first of all you need to enable a channel, which commonly is a remote webserver that provide packages feed and the binary packages itself

An example of network interface configuration for Internet access is described here below. Configuration can be done directly on serial console with the following commands:

root@sbc-lynx:~# ifconfig eth0 192.168.0.94
root@sbc-lynx:~# route add default gw 192.168.0.254
root@sbc-lynx:~# echo "nameserver 8.8.8.8" > /etc/resolv.conf

where 192.168.0.254 is the gateway address and 8.8.8.8 is the DNS server (in this case Google's one).

Once the network interface is configured, the DAVE's Yocto Lizard package server can be accessed for package downloading.

On the target edit the opkg configuration file to tell opkg where to look for packages.

The opkg configuration file is /etc/opkg/opkg.conf.

root@lizard:~# vi /etc/opkg/opkg.conf
# Must have one or more source entries of the form:
#
#   src <src-name> <source-url>
#
# and one or more destination entries of the form:
#
#   dest <dest-name> <target-path>
#
# where <src-name> and <dest-names> are identifiers that
# should match [a-zA-Z0-9._-]+, <source-url> should be a
# URL that points to a directory containing a Familiar
# Packages file, and <target-path> should be a directory
# that exists on the target system.


and add the following server:

src/gz cortexa8hf-vfp-neon http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/
src/gz all http://yocto.dave.eu/lizard/all
root@lizard:~# opkg update
...
...
Downloading http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/Packages.gz.
Inflating http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/Packages.gz.
Updated list of available packages in /var/lib/opkg/cortexa8hf-vfp-neon.
Downloading http://yocto.dave.eu/lizard/all/Packages.gz.
Inflating http://yocto.dave.eu/lizard/all/Packages.gz.
Updated list of available packages in /var/lib/opkg/all.

Then, simply, instruct opkg to install the required package, for example:

root@lizard:~# opkg install openssh
Installing openssh (6.1p1-r0-arago0) to root...
Downloading http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/openssh_6.1p1-r0-arago0_cortexa8hf-vfp-neon-2.6.37.2.ipk.
Installing openssh-scp (6.1p1-r0-arago0) to root...
Downloading http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/openssh-scp_6.1p1-r0-arago0_cortexa8hf-vfp-neon-2.6.37.2.ipk.
Installing update-alternatives-cworth (1:0.1.8+svnr649-r13.0-arago0) to root...
Downloading http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/update-alternatives-cworth_0.1.8+svnr649-r13.0-arago0_cortexa8hf-vfp-neon-2.6.37.2.ipk.
Installing openssh-ssh (6.1p1-r0-arago0) to root...
Downloading http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/openssh-ssh_6.1p1-r0-arago0_cortexa8hf-vfp-neon-2.6.37.2.ipk.
Installing openssh-keygen (6.1p1-r0-arago0) to root...
Downloading http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/openssh-keygen_6.1p1-r0-arago0_cortexa8hf-vfp-neon-2.6.37.2.ipk.
Installing openssh-sshd (6.1p1-r0-arago0) to root...
Downloading http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/openssh-sshd_6.1p1-r0-arago0_cortexa8hf-vfp-neon-2.6.37.2.ipk.
Installing shadow (4.1.4.3-r13) to root...
Downloading http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/shadow_4.1.4.3-r13_cortexa8hf-vfp-neon-2.6.37.2.ipk.
Installing shadow-securetty (4.1.4.3-r2-arago0) to root...
Downloading http://yocto.dave.eu/lizard/lizard/shadow-securetty_4.1.4.3-r2-arago0_lizard.ipk.
Installing base-passwd (3.5.26-r2) to root...
Downloading http://yocto.dave.eu/lizard/cortexa8hf-vfp-neon-2.6.37.2/base-passwd_3.5.26-r2_cortexa8hf-vfp-neon-2.6.37.2.ipk.
Running useradd commands...
Note: username sshd already exists, not re-creating it
Installing update-rc.d (0.7-r5) to root...
Downloading http://yocto.dave.eu/lizard/all/update-rc.d_0.7-r5_all.ipk.
Configuring shadow-securetty.
Configuring update-alternatives-worth.
Configuring openssh-ssh.
update-alternatives: Linking //usr/bin/ssh to /usr/bin/ssh.openssh
Configuring openssh-scp.
update-alternatives: Linking //usr/bin/scp to /usr/bin/scp.openssh
Configuring openssh-keygen.
Configuring base-passwd.
Configuring shadow.
update-alternatives: Linking //usr/bin/passwd to /usr/bin/passwd.shadow
update-alternatives: Linking //usr/bin/chfn to /usr/bin/chfn.shadow
update-alternatives: Linking //usr/bin/newgrp to /usr/bin/newgrp.shadow
update-alternatives: Linking //usr/bin/chsh to /usr/bin/chsh.shadow
update-alternatives: Linking //usr/bin/groups to /usr/bin/groups.shadow
update-alternatives: Linking //usr/sbin/chpasswd to /usr/sbin/chpasswd.shadow
update-alternatives: Linking //bin/login to /bin/login.shadow
update-alternatives: Linking //sbin/vipw to /sbin/vipw.shadow
update-alternatives: Linking //sbin/vigr to /sbin/vigr.shadow
Configuring openssh-sshd.
 System startup links for /etc/init.d/sshd already exist.
Restarting OpenBSD Secure Shell server: sshdstopped /usr/sbin/sshd (pid 910)
.
Configuring update-rc.d.
Configuring openssh.
root@lizard:~#

Other useful OPKG commands

A brief guide to OPKG command line interface is here. In the next section we'll show some example of OPKG usage.

List installed packages

User can see the list of installed packages with opkg list-installed

root@lizard:~# opkg list-installed
base-passwd - 3.5.26-r2
libattr1 - 2.4.46-r4
libc6 - 2.15-r2-arago5
libcap2 - 2.22-r5
libcrypto1.0.0 - 1.0.1e-r15.0-arago9
libgcc-s1 - 4.7.3-r2-arago5
libgcrypt11 - 1.5.0-r2
libgpg-error0 - 1.11-r0
libz1 - 1.2.7-r0
openssh - 6.1p1-r0-arago0
openssh-keygen - 6.1p1-r0-arago0
openssh-scp - 6.1p1-r0-arago0
openssh-sftp - 6.1p1-r0-arago0
openssh-ssh - 6.1p1-r0-arago0
openssh-sshd - 6.1p1-r0-arago0
shadow - 4.1.4.3-r13
shadow-securetty - 4.1.4.3-r2-arago0
update-alternatives-cworth - 1:0.1.8+svnr649-r13.0-arago0
update-rc.d - 0.7-r5
root@lizard:~#

List available packages

To list the available packages into the current configured channels use opkg list

root@lizard:~# opkg list
a52dec - 0.7.4-r4 - liba52 version 0.7.4-r4  Library for reading some sort of media format.
a52dec-doc - 0.7.4-r4 - liba52 version 0.7.4-r4  Library for reading some sort of media format.
acl - 2.2.51-r3 - acl version 2.2.51-r3  utilities for access control list
acl-dbg - 2.2.51-r3 - acl version 2.2.51-r3 - Debugging files  utilities for access control
 list  This package contains ELF symbols and   related sources for
 debugging purposes.
acl-dev - 2.2.51-r3 - acl version 2.2.51-r3 - Development files  utilities for access control
 list  This package contains symbolic links,   header files, and related
 items necessary for software development.
acl-doc - 2.2.51-r3 - acl version 2.2.51-r3 - Documentation files  utilities for access control
 list  This package contains documentation.
acl-locale-de - 2.2.51-r3 - acl version 2.2.51-r3 - de translations  utilities for access control
 list  This package contains language   translation files for the de
 locale.
acl-locale-es - 2.2.51-r3 - acl version 2.2.51-r3 - es translations  utilities for access control
 list  This package contains language   translation files for the es
 locale.
acl-locale-fr - 2.2.51-r3 - acl version 2.2.51-r3 - fr translations  utilities for access control
 list  This package contains language   translation files for the fr
 locale.
acl-locale-gl - 2.2.51-r3 - acl version 2.2.51-r3 - gl translations  utilities for access control
 list  This package contains language   translation files for the gl
 locale.
acl-locale-pl - 2.2.51-r3 - acl version 2.2.51-r3 - pl translations  utilities for access control
 list  This package contains language   translation files for the pl

[...]

Package info

To see a package characteristics use opkg info <package_name> :

root@lizard:~# opkg info openssh
Package: openssh
Version: 6.1p1-r0-arago0
Depends: openssh-scp, openssh-ssh, openssh-keygen, openssh-sshd
Recommends: update-rc.d
Conflicts: dropbear
Status: install user installed
Section: console/network
Architecture: cortexa8hf-vfp-neon-2.6.37.2
Maintainer: OE-Core Developers <openembedded-core@lists.openembedded.org>
MD5Sum: 12d42e54c312a08c4321125ec4a1194b
Size: 890
Filename: openssh_6.1p1-r0-arago0_cortexa8hf-vfp-neon-2.6.37.2.ipk
Source: ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.1p1.tar.gz file://nostrip.patch file://sshd_config file://ssh_config file://init file://openssh-CVE-2011-4327.patch
Description: Secure rlogin/rsh/rcp/telnet replacement  Secure rlogin/rsh/rcp/telnet
 replacement (OpenSSH) Ssh (Secure Shell) is   a program for logging into
 a remote machine and for executing commands on   a remote machine.
Installed-Time: 1508849774

root@lizard:~#

References