Open main menu

DAVE Developer's Wiki β

Changes

DESK-MX6-L-AN-0003: Package Management with Yocto and DNF

8,976 bytes added, 08:59, 5 October 2021
no edit summary
==Introduction==
Since some [https://www.yoctoproject.org/docs/2.3/dev-manual/dev-manual.html#using-runtime-package-management Pyro (2.3) Yocto releasesrelease], DNF is the default package manager for installing packages in the DUT (target machine).
The [https://en.wikipedia.org/wiki/DNF_(software) Dandified Packaging Tool (DNF)] performs runtime package management of RPM packages. In order to use DNF for runtime package management, you must perform an initial setup on the target machine for cases where the PACKAGE_FEED_* variables were not set as part of the image that is running on the target.
{
echo [cortexa7hf]
echo name=desk-mx6ul-1.0.1cortexa7hf
echo enabled=1
echo gpgcheck=0
echo baseurl=http://yocto.dave.eu/desk-mx6ul-l-1.0.1/cortexa7hf_neon/
} | tee >> /etc/yum.repos.d/dave.repo
root@desk-mx6ul-axelulite:~#
{
echo [cortexa7hf_neon_mx6ul]
echo name=desk-mx6ul-cortexa7hf_neon
echo enabled=1
echo gpgcheck=0
echo baseurl=http://yocto.dave.eu/desk-mx6ul-l-1.0.1/cortexa7hf_neon_mx6ul/
} | tee >> /etc/yum.repos.d/dave.repo
root@desk-mx6ul-axelulite:~#
</pre>
 
This allows to configure two DNF repositories available on [http://yocto.dave.eu/ DAVE's Yocto package server]:
 
<pre class="board-terminal">
root@desk-mx6ul-axelulite:~# cat /etc/yum.repos.d/dave.repo
[cortexa7hf]
name=desk-mx6ul-cortexa7hf
enabled=1
gpgcheck=0
baseurl=http://yocto.dave.eu/desk-mx6ul-l-1.0.1/cortexa7hf_neon/
[cortexa7hf_neon_mx6ul]
name=desk-mx6ul-cortexa7hf_neon
enabled=1
gpgcheck=0
baseurl=http://yocto.dave.eu/desk-mx6ul-l-1.0.1/cortexa7hf_neon_mx6ul/
root@desk-mx6ul-axelulite:~#
</pre>
 
== Installing packages on target ==
We assume that network interface has been already configured for Internet access. In any case, a simple network configuration can be done directly on serial console with according to the following commands[[DESK-MX6UL-L/Deployment/How_to_configure_the_network_interfaces#Static_IP_address | How to configure the network interfaces]] wiki page:
<pre class="board-terminal">
root@desk-mx6ul-axelulite:~# ifconfig cat /etc/systemd/network/eth0 .network[Match]Name=eth0 # Prevent the interface loading if the kernel boots from nfsKernelCommandLine=!nfsroot [Network]Address=192.168.0.9490root@desk-mx6ul-axelulite:~# route add default gw Gateway=192.168.0.254DNS=192.168.0.1root@desk-mx6ul-axelulite:~# echo "nameserver 8.8.8.8" > /etc/resolv.conf
</pre>
Then, for installing a package, it is enough to invoke <code>dnf</code> with the ''install'' parameter, for example:
'''
<pre class="board-terminal">
root@desk-mx6ul-axelulite:~# dnf install fblighttpdLast metadata expiration check: 0:02:21 ago on Tue Oct 5 08:30:43 2021.Dependencies resolved.================================================================================ Package Arch Version Repository Size================================================================================Installing: lighttpd cortexa7hf_neon 1.4.48-r0 cortexa7hf 103 kInstalling dependencies: lighttpd-module-dirlisting cortexa7hf_neon 1.4.48-r0 cortexa7hf 15 k lighttpd-module-indexfile cortexa7hf_neon 1.4.48-r0 cortexa7hf 9.3 k lighttpd-module-staticfile cortexa7hf_neon 1.4.48-r0 cortexa7hf 9.1 kInstalling weak dependencies: lighttpd-module-access cortexa7hf_neon 1.4.48-r0 cortexa7hf 9.2 k lighttpd-module-accesslog cortexa7hf_neon 1.4.48-r0 cortexa7hf 14 k Transaction Summary================================================================================Install 6 Packages Total download size: 160 kInstalled size: 315 kIs this ok [y/N]: yDownloading Packages:(1/6): lighttpd-module-indexfile-1.4.48-r0.cort 67 kB/s | 9.3 kB 00:00(2/6): lighttpd-module-dirlisting-1.4.48-r0.cor 90 kB/s | 15 kB 00:00(3/6): lighttpd-1.4.48-r0.cortexa7hf_neon.rpm 513 kB/s | 103 kB 00:00(4/6): lighttpd-module-staticfile-1.4.48-r0.cor 145 kB/s | 9.1 kB 00:00(5/6): lighttpd-module-access-1.4.48-r0.cortexa 169 kB/s | 9.2 kB 00:00(6/6): lighttpd-module-accesslog-1.4.48-r0.cort 364 kB/s | 14 kB 00:00--------------------------------------------------------------------------------Total 558 kB/s | 160 kB 00:00Running transaction checkTransaction check succeeded.Running transaction testTransaction testsucceeded.Running transaction Preparing : 1/1 Installing : lighttpd-module-staticfile-1.4.48-r0.cortexa7hf_neon 1/6 Running scriptlet: lighttpd-module-staticfile-1.4.48-r0.cortexa7hf_neon 1/6 Installing : lighttpd-module-indexfile-1.4.48-r0.cortexa7hf_neon 2/6 Running scriptlet: lighttpd-module-indexfile-1.4.48-r0.cortexa7hf_neon 2/6 Installing : lighttpd-module-dirlisting-1.4.48-r0.cortexa7hf_neon 3/6 Running scriptlet: lighttpd-module-dirlisting-1.4.48-r0.cortexa7hf_neon 3/6 Installing : lighttpd-1.4.48-r0.cortexa7hf_neon 4/6 Running scriptlet: lighttpd-1.4.48-r0.cortexa7hf_neon 4/6Created symlink /etc/systemd/system/multi-user.target.wants/lighttpd.service \u2192 /lib/systemd/system/lighttpd.service. Installing : lighttpd-module-accesslog-1.4.48-r0.cortexa7hf_neon 5/6 Running scriptlet: lighttpd-module-accesslog-1.4.48-r0.cortexa7hf_neon 5/6 Installing : lighttpd-module-access-1.4.48-r0.cortexa7hf_neon 6/6 Running scriptlet: lighttpd-module-access-1.4.48-r0.cortexa7hf_neon 6/6 Verifying : lighttpd-1.4.48-r0.cortexa7hf_neon 1/6 Verifying : lighttpd-module-dirlisting-1.4.48-r0.cortexa7hf_neon 2/6 Verifying : lighttpd-module-indexfile-1.4.48-r0.cortexa7hf_neon 3/6 Verifying : lighttpd-module-staticfile-1.4.48-r0.cortexa7hf_neon 4/6 Verifying : lighttpd-module-access-1.4.48-r0.cortexa7hf_neon 5/6 Verifying : lighttpd-module-accesslog-1.4.48-r0.cortexa7hf_neon 6/6 Installed: lighttpd.cortexa7hf_neon 1.4.48-r0 lighttpd-module-access.cortexa7hf_neon 1.4.48-r0 lighttpd-module-accesslog.cortexa7hf_neon 1.4.48-r0 lighttpd-module-dirlisting.cortexa7hf_neon 1.4.48-r0 lighttpd-module-indexfile.cortexa7hf_neon 1.4.48-r0 lighttpd-module-staticfile.cortexa7hf_neon 1.4.48-r0 Complete!root@desk-mx6ul-axelulite:~#
</pre>
== Other useful DNF commands ==
 
=== List of configured software repositories ===
 
<pre class="board-terminal">
root@desk-mx6ul-axelulite:~# dnf repolist
Last metadata expiration check: 0:05:12 ago on Tue Oct 5 08:30:43 2021.
repo id repo name status
cortexa7hf desk-mx6ul-cortexa7hf 13902
cortexa7hf_neon_mx6ul desk-mx6ul-cortexa7hf_neon 424
</pre>
 
=== Search for packages ===
 
To search for an available package into the current configured channels use <code>dnf repoquery</code>
 
Please note that this will show all packages, it's usually more useful to give it a pattern, e.g.:
 
<pre class="board-terminal">
root@desk-mx6ul-axelulite:~# dnf repoquery *fb*
Last metadata expiration check: 0:05:45 ago on Tue Oct 5 08:30:43 2021.
directfb-0:1.7.7-r0.cortexa7hf_neon
directfb-dbg-0:1.7.7-r0.cortexa7hf_neon
directfb-dev-0:1.7.7-r0.cortexa7hf_neon
directfb-doc-0:1.7.7-r0.cortexa7hf_neon
directfb-examples-0:1.7.0-r0.cortexa7hf_neon
directfb-examples-dbg-0:1.7.0-r0.cortexa7hf_neon
directfb-examples-dev-0:1.7.0-r0.cortexa7hf_neon
eglinfo-fb-0:1.0.0-r0.cortexa7hf_neon
eglinfo-fb-dbg-0:1.0.0-r0.cortexa7hf_neon
eglinfo-fb-dev-0:1.0.0-r0.cortexa7hf_neon
fb-test-0:1.1.0-r0.cortexa7hf_neon
fb-test-dbg-0:1.1.0-r0.cortexa7hf_neon
fb-test-dev-0:1.1.0-r0.cortexa7hf_neon
fbgrab-0:1.3-r0.cortexa7hf_neon
fbgrab-dbg-0:1.3-r0.cortexa7hf_neon
fbgrab-dev-0:1.3-r0.cortexa7hf_neon
fbgrab-doc-0:1.3-r0.cortexa7hf_neon
fbida-0:2.10-r0.cortexa7hf_neon
fbida-dbg-0:2.10-r0.cortexa7hf_neon
fbida-dev-0:2.10-r0.cortexa7hf_neon
fbida-doc-0:2.10-r0.cortexa7hf_neon
fbset-0:2.1-r4.cortexa7hf_neon
fbset-dbg-0:2.1-r4.cortexa7hf_neon
fbset-dev-0:2.1-r4.cortexa7hf_neon
fbset-doc-0:2.1-r4.cortexa7hf_neon
fbv-0:1.0b-r2.cortexa7hf_neon
fbv-dbg-0:1.0b-r2.cortexa7hf_neon
fbv-dev-0:1.0b-r2.cortexa7hf_neon
fbv-doc-0:1.0b-r2.cortexa7hf_neon
gst-plugins-bad-fbdevsink-0:0.10.23-r4.cortexa7hf_neon
gst-plugins-bad-rfbsrc-0:0.10.23-r4.cortexa7hf_neon
gstreamer1.0-plugins-bad-fbdevsink-0:1.14.4.imx-r0.cortexa7hf_neon_mx6ul
gstreamer1.0-plugins-bad-rfbsrc-0:1.14.4.imx-r0.cortexa7hf_neon_mx6ul
libharfbuzz-bin-0:1.7.5-r0.cortexa7hf_neon
libharfbuzz-dbg-0:1.7.5-r0.cortexa7hf_neon
libharfbuzz-dev-0:1.7.5-r0.cortexa7hf_neon
libharfbuzz-icu-dev-0:1.7.5-r0.cortexa7hf_neon
libharfbuzz-icu0-0:1.7.5-r0.cortexa7hf_neon
libharfbuzz0-0:1.7.5-r0.cortexa7hf_neon
root@desk-mx6ul-axelulite:~#
</pre>
 
=== List of installed packages ===
 
User can see the list of installed packages with <code>dnf repoquery --installed</code>
 
<pre class="board-terminal">
root@desk-mx6ul-axelulite:~# dnf repoquery --installed
acl-0:2.2.52-r0.cortexa7hf_neon
acl-dev-0:2.2.52-r0.cortexa7hf_neon
alsa-conf-0:1.1.5-r0.cortexa7hf_neon_mx6ul
alsa-state-0:0.2.0-r5.desk_mx6ul_axelulite
alsa-states-0:0.2.0-r5.desk_mx6ul_axelulite
alsa-tools-0:1.1.5-r0.cortexa7hf_neon
...
...
wireless-tools-1:30.pre9-r0.cortexa7hf_neon
wl18xx-firmware-0:R8.5+git0+02df01f8b9-r0.noarch
wpa-supplicant-0:2.6-r0.cortexa7hf_neon
wpa-supplicant-cli-0:2.6-r0.cortexa7hf_neon
wpa-supplicant-passphrase-0:2.6-r0.cortexa7hf_neon
xinetd-0:2.3.15-r2.cortexa7hf_neon
xz-0:5.2.3-r0.cortexa7hf_neon
xz-dev-0:5.2.3-r0.cortexa7hf_neon
root@desk-mx6ul-axelulite:~#
</pre>
 
=== DNF activity history ===
 
User can see the activity on packages with <code>dnf history</code>
 
<pre class="board-terminal">
root@desk-mx6ul-axelulite:~# dnf history
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
3 | install lighttpd | 2021-10-05 08:33 | Install | 6 EE
2 | -y -c /home/jenkins/work | 2021-06-16 15:49 | Install | 14
1 | -y -c /home/jenkins/work | 2021-06-16 15:47 | Install | 1128 EE
root@desk-mx6ul-axelulite:~#
</pre>
== References ==
* https://en.wikipedia.org/wiki/DNF_(software)
* https://dnf.readthedocs.io/en/latest/index.html
* https://linux.die.net/man/5/yum.conf
* http://yocto.dave.eu/
8,226
edits