DESK-MP1-L/Development/Management of prebuilt packages

From DAVE Developer's Wiki
< DESK-MP1-L
Revision as of 10:38, 3 August 2023 by U0001 (talk | contribs) (Created page with "<section begin="History" /> {| style="border-collapse:collapse; " ! colspan="4" style="width:100%; text-align:left" ; border-bottom:solid 2px #ededed" |History |- ! style="bo...")

(diff) ← Older revision | Approved revision (diff) | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
History
Issue Date Notes
August 2023 DESK-MP1-L-1.0.0 release


TBD

Introduction[edit | edit source]

During the development of custom applications, developers generally realize that they need to add libraries and other software packages to the root file systems to make their code run properly. If these packages are prebuilt, developers can easily install these additional packages onto the root file system very easily. By configuring the target as described in this document, they achieve a user experience similar to the one you have with a desktop Linux distro such as Ubuntu. DESK-MP1-L uses by default the deb package format. As such, apt commands can be used for package management. Prebuilt packages are provided by a repository that DAVE Embedded Systems makes available for its customers.

Configuring the target[edit | edit source]

In order to use apt-get 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.

apt-get[edit | edit source]

The following instructions detail how to use apt-get for installing packages with Yocto repositories created by DAVE's build system for DESK-MX8M-L.

Configuring apt[edit | edit source]

Edit the file /etc/apt/apt.conf like this:

APT::Architecture "arm64";
APT::Get::AllowUnauthenticated "true";
Acquire::Languages "none";

Edit the file /etc/apt/sources.list.d/debian-10.list like this:

root@desk-mx8mp:~# cat /etc/apt/sources.list.d/debian-10.list
deb [trusted=yes] http://yocto.dave.eu/imx-5.4.70-2.3.0/ all/
deb [trusted=yes] http://yocto.dave.eu/imx-5.4.70-2.3.0/ aarch64/
deb [trusted=yes] http://yocto.dave.eu/imx-5.4.70-2.3.0/ aarch64-mx8mp/

Execute the following commands in order to re-create the apt cache based on the new server's list:

rm -rf /var/lib/apt/lists/*
apt-get clean
apt-get update
root@desk-mx8mp:~# rm -rf /var/lib/apt/lists/*
root@desk-mx8mp:~# apt-get clean
root@orca:~# apt-get update
0% [Working]
Ign:1 http://yocto.dave.eu/imx-5.4.70-2.3.0 all/ InRelease
Ign:2 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64/ InRelease
Ign:3 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64-mx8mp/ InRelease
Get:4 http://yocto.dave.eu/imx-5.4.70-2.3.0 all/ Release [1213 B]
Get:5 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64/ Release [1217 B]
Get:6 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64-mx8mp/ Release [1223 B]
Ign:7 http://yocto.dave.eu/imx-5.4.70-2.3.0 all/ Release.gpg
Ign:8 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64/ Release.gpg
Ign:9 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64-mx8mp/ Release.gpg
Get:10 http://yocto.dave.eu/imx-5.4.70-2.3.0 all/ Packages [146 kB]
Get:11 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64/ Packages [2848 kB]
Get:12 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64-mx8mp/ Packages [283 kB]
Fetched 3280 kB in 6s (545 kB/s)
Reading package lists... Done

Then, modify the cached package list due to the proper DAVE's server configuration:

sed -i 's/\.\//aarch64\//g' /var/lib/apt/lists/yocto.dave.eu_imx-5.4.70-2.3.0_aarch64_Packages
sed -i 's/\.\//all\//g' /var/lib/apt/lists/yocto.dave.eu_imx-5.4.70-2.3.0_all_Packages
sed -i 's/\.\//aarch64-mx8mp\//g' /var/lib/apt/lists/yocto.dave.eu_imx-5.4.70-2.3.0_aarch64-mx8mp_Packages

Installing packages on target[edit | edit source]

We assume that network interface has been already configured for Internet access. In any case, a simple network configuration can be done according to the How to configure the network interfaces wiki page.

The target is finally ready to install new packages. The following example shows for instance the installation of vim:

root@orca:~# apt-get install vim
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  vim-common vim-help vim-syntax vim-tutor vim-vimrc
The following NEW packages will be installed:
  vim vim-common vim-help vim-syntax vim-tutor vim-vimrc
0 upgraded, 6 newly installed, 0 to remove and 20 not upgraded.
Need to get 6584 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64/ vim 8.1.1518-r0 [1051 kB]
Get:2 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64/ vim-common 8.1.1518-r0 [2314 kB]
Get:3 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64/ vim-help 8.1.1518-r0 [1757 kB]
Get:4 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64/ vim-syntax 8.1.1518-r0 [1049 kB]
Get:5 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64/ vim-tutor 8.1.1518-r0 [411 kB]
Get:6 http://yocto.dave.eu/imx-5.4.70-2.3.0 aarch64/ vim-vimrc 8.1.1518-r0 [1596 B]
Fetched 6584 kB in 9s (660 kB/s)
Selecting previously unselected package vim.
(Reading database ... 71726 files and directories currently installed.)
Preparing to unpack .../vim_8.1.1518-r0_arm64.deb ...
Unpacking vim (8.1.1518-r0) ...
Selecting previously unselected package vim-common.
Preparing to unpack .../vim-common_8.1.1518-r0_arm64.deb ...
Unpacking vim-common (8.1.1518-r0) ...
Selecting previously unselected package vim-help.
Preparing to unpack .../vim-help_8.1.1518-r0_arm64.deb ...
Unpacking vim-help (8.1.1518-r0) ...
Selecting previously unselected package vim-syntax.
Preparing to unpack .../vim-syntax_8.1.1518-r0_arm64.deb ...
Unpacking vim-syntax (8.1.1518-r0) ...
Selecting previously unselected package vim-tutor.
Preparing to unpack .../vim-tutor_8.1.1518-r0_arm64.deb ...
Unpacking vim-tutor (8.1.1518-r0) ...
Selecting previously unselected package vim-vimrc.
Preparing to unpack .../vim-vimrc_8.1.1518-r0_arm64.deb ...
Unpacking vim-vimrc (8.1.1518-r0) ...
Setting up vim (8.1.1518-r0) ...
update-alternatives: Linking /bin/vi to /usr/bin/vim.vim
update-alternatives: Linking /usr/bin/vim to /usr/bin/vim.vim
update-alternatives: Linking /usr/bin/xxd to /usr/bin/xxd.vim
Setting up vim-common (8.1.1518-r0) ...
Setting up vim-help (8.1.1518-r0) ...
Setting up vim-syntax (8.1.1518-r0) ...
Setting up vim-tutor (8.1.1518-r0) ...
Setting up vim-vimrc (8.1.1518-r0) ...

Other useful apt commands[edit | edit source]

List of configured software repositories[edit | edit source]

As shown before, the target is configured for accessing the Yocto repositories as listed in the /etc/apt/sources.list.d apt configuration directory:

root@desk-mx8mp:~# cat /etc/apt/sources.list.d/debian-10.list
deb [trusted=yes] http://yocto.dave.eu/imx-5.4.70-2.3.0/ all/
deb [trusted=yes] http://yocto.dave.eu/imx-5.4.70-2.3.0/ aarch64/
deb [trusted=yes] http://yocto.dave.eu/imx-5.4.70-2.3.0/ aarch64-mx8mp/

Search for packages[edit | edit source]

To search for an available package into the current configured channels use apt-cache search

Please note that this will show all packages, it's usually more useful to grep for a pattern, e.g.:

root@desk-mx8mp:~# apt-cache search vim
vim-dbg - Vi IMproved - enhanced vi editor - Debugging files
vim - Vi IMproved - enhanced vi editor
vim-common - Vi IMproved - enhanced vi editor
vim-src - Vi IMproved - enhanced vi editor - Source files
vim-tutor - Vi IMproved - enhanced vi editor
vim-vimrc - Vi IMproved - enhanced vi editor
vim-syntax - Vi IMproved - enhanced vi editor
vim-tools - Vi IMproved - enhanced vi editor
vim-help - Vi IMproved - enhanced vi editor
vim-dev - Vi IMproved - enhanced vi editor - Development files
vim-doc - Vi IMproved - enhanced vi editor - Documentation files
root@desk-mx8mp:~#

List of installed packages[edit | edit source]

User can see the list of installed packages with dpkg --get-selections | sed 's:install$::' (sed removes the install string from the output list)

acl
acl-dev
adwaita-icon-theme-symbolic
alsa-conf
alsa-state
alsa-states
alsa-tools
alsa-utils
alsa-utils-aconnect
alsa-utils-alsactl
alsa-utils-alsaloop
alsa-utils-alsamixer
alsa-utils-alsatplg
...
[snip]
...
volatile-binds-dev
wayland
wayland-dev
which
which-dev
wireless-regdb-static
wireless-tools
wpa-supplicant
wpa-supplicant-cli
wpa-supplicant-passphrase
xinetd
xz
xz-dev
root@desk-mx8mm:~#