Difference between revisions of "Package repository for OpenSTLinux distribution"
[quality revision] | [quality revision] |
Denis Humeau (talk | contribs)
(→Limitations)
|
Denis Humeau (talk | contribs)
(→Further readings)
|
Contents
1 Disclaimers[edit]
STMicroelectronics packages repository service is provided for evaluation purpose only, and therefore not approved for use in production.
The package licenses hosted in these repositories can be found here: OpenSTLinux_licenses.
2 Description[edit]
OpenSTLinux provides a package repository service hosted at packages.openstlinux.st.com.
The package repository service is designed for STM32MP157C-DK2 boards and is enabled by default in the Starter Package.
2.1 Organization[edit]
Within each repository, packages are organized in two groups (a.k.a "components" in the APT terminology):
- the "main" group contains a wide selection of packages whose installation is automatically tested by STMicroelectronics
- the "untested" group contains all the other packages that can be built using the
bitbake world
command. However their installation is not guaranteed.
A third group named "updates" is reserved for future use.
2.2 Limitations[edit]
Packages repository service doesn't include the packages that are shipped in the rootfs image, nor the BSP components (TF-A, U-Boot, Linux and OP-TEE). They can be installed only from the Starter Package using the STM32CubeProgrammer.
rootfs available space is about 60MB by default. For a better experience it is recommend to flash the Starter Package using the "extensible" flashlayout (*-extensible.tsv).
Extensible flashlayout does not flash userfs partition to extend the rootfs partition to the size of the sdcard.
3 Usage[edit]
3.1 Apt[edit]
OpenSTLinux packages can be handled using apt-*
utilities, which are the same utilities used on a Debian system. The first apt-*
command that must be run before any other is:
root@board# apt-get update
This command synchronizes the local packages index from the repositories enumerated in /etc/apt/sources.list{,.d}
. Once it is updated, apt-cache
can be used to get the list of all available packages:
root@board# apt-cache search .
Obviously it is possible to list only packages that match a given pattern, for example:
root@board# apt-cache search emacs [...] zile - very small Emacs-subset editor
The desired package(s) can then be easily installed:
root@board# apt-get install zile
... or removed:
root@board# apt-get remove zile
This command only removes the files that were installed from this package. It does not remove the package from the apt
download cache. If there is not enough space available on the system, it is recommended to clean the cache:
root@board# apt-get clean
Likewise, some packages may have been automatically installed to respect dependencies with other packages. If they are no longer required, they can be removed to free space:
root@board# apt-get autoremove
In addition, it is recommended to regularly install the latest versions of the packages currently installed on the system:
root@board# apt-get upgrade
3.2 How to create a repository[edit]
A lot of different tools can be used to generate an Apt repository; the most recommended one is reprepro
, and the easiest one is probably apt-ftparchive
. For instance, to quickly create an Apt repository from a build of OpenSTLinux:
user@pc$ cd build-openstlinuxweston-stm32mp1 user@pc$ cd tmp-glibc/deploy/deb/ user@pc$ ls all/ cortexa7t2hf-neon-vfpv4/ stm32mp1/ user@pc$ apt-ftparchive --arch armhf packages . > Packages user@pc$ apt-ftparchive release . > Release
The whole content of this directory (deb
in the previous example) must then be copied to a location that can be accessed by the OpenSTLinux OS. It could be a file server or a local disk. Just declare this location ($location
in the example below) to the Apt system:
root@board# echo "deb [trusted=yes] $location /" > /etc/apt/sources.list.d/custom.list
In the above example, [trusted=yes]
has been specified because the package manifest is not signed. Eventually, apt-*
commands can be used as described in the apt section.
4 Support[edit]
Bug reports, request for new packages, or any other kind of support requests can be submitted through https://community.st.com.
5 Further readings[edit]
- Dpkg
- https://manpages.debian.org/stable/apt/apt-get.8.en.html
- https://manpages.debian.org/stable/apt/sources.list.5.en.html
- https://manpages.debian.org/stable/apt/apt-cache.8.en.html
- https://wiki.debian.org/DebianRepository/Setup
- https://wiki.debian.org/DebianRepository/SetupWithReprepro
- https://wiki.debian.org/SecureApt
- https://wiki.st.com/stm32mpu/wiki/STM32MP15_Discovery_kits_-_Starter_Package
- https://wiki.st.com/stm32mpu/wiki/STM32MP15_Evaluation_boards_-_Starter_Package
- https://wiki.st.com/stm32mpu/wiki/STM32MP1_Developer_Package
==Disclaimers== STMicroelectronics packages repository service is provided for evaluation purpose only, and therefore not approved for use in production.<br/> The package licenses hosted in these repositories can be found here: [[OpenSTLinux_licenses]]. ==Description== OpenSTLinux provides a package repository service hosted at [http://packages.openstlinux.st.com packages.openstlinux.st.com]. The package repository service is designed for ''STM32MP157C-DK2'' boards and is enabled by default in the [[STM32MP15_Discovery_kits_-_Starter_Package|Starter Package]]. ===Organization=== Within each repository, packages are organized in two groups (a.k.a "components" in the APT terminology): * the "main" group contains a wide selection of packages whose installation is automatically tested by STMicroelectronics * the "untested" group contains all the other packages that can be built using the <code>bitbake world</code> command. However their installation is not guaranteed. A third group named "updates" is reserved for future use. ===Limitations=== Packages repository service doesn't include the packages that are shipped in the rootfs image, nor the BSP components (TF-A, U-Boot, Linux and OP-TEE). They can be installed only from the [[STM32MP15_Discovery_kits_-_Starter_Package|Starter Package]] using the [[STM32CubeProgrammer]]. ''rootfs'' available space is about 60MB by default. For a better experience it is recommend to [[STM32CubeProgrammer#How_to_flash_with_STM32CubeProgrammer|flash]] the [[STM32MP15_Discovery_kits_-_Starter_Package|Starter Package]] using the "extensible" flashlayout (''*-extensible.tsv'').<br/> {{Grey|'''''Extensible flashlayout''''' does not flash userfs partition to extend the rootfs partition to the size of the sdcard.}} ==Usage== ===Apt === OpenSTLinux packages can be handled using <code>apt-*</code> utilities, which are the same utilities used on a [https://manpages.debian.org/stable/apt/apt-get.8.en.html Debian system]. The first <code>apt-*</code> command that must be run before any other is: root@board# apt-get update This command synchronizes the local packages index from the repositories enumerated in [https://manpages.debian.org/stable/apt/sources.list.5.en.html <code>/etc/apt/sources.list{,.d}</code>]. Once it is updated, [https://manpages.debian.org/stable/apt/apt-cache.8.en.html <code>apt-cache</code>] can be used to get the list of all available packages: root@board# apt-cache search . Obviously it is possible to list only packages that match a given pattern, for example: root@board# apt-cache search emacs [...] zile - very small Emacs-subset editor The desired package(s) can then be easily installed: root@board# apt-get install zile ... or removed: root@board# apt-get remove zile This command only removes the files that were installed from this package. It does not remove the package from the <code>apt</code> download cache. If there is not enough space available on the system, it is recommended to clean the cache: root@board# apt-get clean Likewise, some packages may have been automatically installed to respect dependencies with other packages. If they are no longer required, they can be removed to free space: root@board# apt-get autoremove In addition, it is recommended to regularly install the latest versions of the packages currently installed on the system: root@board# apt-get upgrade ===How to create a repository=== A lot of different tools can be used to [https://wiki.debian.org/DebianRepository/Setup generate an Apt repository]; the most recommended one is [https://wiki.debian.org/DebianRepository/SetupWithReprepro <code>reprepro</code>], and the easiest one is probably <code>apt-ftparchive</code>. For instance, to quickly create an Apt repository from a build of OpenSTLinux: user@pc$ cd build-openstlinuxweston-stm32mp1 user@pc$ cd tmp-glibc/deploy/deb/ user@pc$ ls all/ cortexa7t2hf-neon-vfpv4/ stm32mp1/ user@pc$ apt-ftparchive --arch armhf packages . > Packages user@pc$ apt-ftparchive release . > Release The whole content of this directory (<code>deb</code> in the previous example) must then be copied to a location that can be accessed by the OpenSTLinux OS. It could be a file server or a local disk. Just declare this location (<code>$location</code> in the example below) to the Apt system: root@board# echo "deb [trusted=yes] $location /" > /etc/apt/sources.list.d/custom.list In the above example, <code>[trusted=yes]</code> has been specified because the package manifest is not [https://wiki.debian.org/SecureApt signed]. Eventually, <code>apt-*</code> commands can be used as described in the [[#Apt|apt]] section. ==Support== Bug reports, request for new packages, or any other kind of support requests can be submitted through https://community.st.com. ==Further readings== * [[Dpkg]] * https://manpages.debian.org/stable/apt/apt-get.8.en.html * https://manpages.debian.org/stable/apt/sources.list.5.en.html * https://manpages.debian.org/stable/apt/apt-cache.8.en.html * https://wiki.debian.org/DebianRepository/Setup * https://wiki.debian.org/DebianRepository/SetupWithReprepro * https://wiki.debian.org/SecureApt * https://wiki.st.com/stm32mpu/wiki/STM32MP15_Discovery_kits_-_Starter_Package * https://wiki.st.com/stm32mpu/wiki/STM32MP15_Evaluation_boards_-_Starter_Package * https://wiki.st.com/stm32mpu/wiki/STM32MP1_Developer_Package <noinclude> [[Category:Services]] {{PublicationRequestId | 14914 | 2020-02-12 |AnneJ}}</noinclude>
Line 94: | Line 94: | ||
==Further readings== |
==Further readings== |
||
+ | * [[Dpkg]] |
||
* https://manpages.debian.org/stable/apt/apt-get.8.en.html |
* https://manpages.debian.org/stable/apt/apt-get.8.en.html |
||
* https://manpages.debian.org/stable/apt/sources.list.5.en.html |
* https://manpages.debian.org/stable/apt/sources.list.5.en.html |