Runtime package management in Tizen on Yocto with Smart
There are two ways to build Tizen from scratch: GBS or the Yocto project. Zypper is the default package manager in the GBS builts. Zypper was also used in the Yocto project until release 1.4 when it was replaced by Smart Package Manager. The purpose of this page is to explain how to Smart and how to configure package feed from "Tizen on Yocto" package's output directory on the host system.
Setting up a package feed
The purpose of this section is to provide a step by step tutorial how to set package feed from "Tizen on Yocto" package's output through HTTP. The instructions have been tested on Ubuntu 15.04.
On the host
- Install Apache2 web server
sudo apt-get install apache2
- Create tizen directory at the DocumentRoot, by default is /var/www/html/
sudo mkdir /var/www/html/tizen/
- Create a symbolic link to the package feed
sudo ln -s ~/tizen-distro/build/tmp-glibc/deploy/rpm/ /var/www/html/tizen/
- Refresh the package index. Pay attention that this step needs to be done manually after every new build.
- Verify that Apache2 web server is running, replace <server> with your IP or domain in the following URL and check if you can access it from a web browser: http://<server>/tizen/rpm/
On Tizen devices
- Set smart channels on your Tizen device. Repeat this step for each architecture in the package feed.
smart channel --add tizen-all type=rpm-md baseurl=http://<server>/tizen/rpm/all/
- Update the known information about channels
- Replace <package_name> with the desired package and execute the following command to install it:
smart install <package_name>
Using Smart Package Manager
The Smart Package Manager project has the ambitious objective of creating smart and portable algorithms for solving adequately the problem of managing software upgrades and installation. It replaced zypper in the Yocto project since release 1.4.
Smart is included in "Tizen on Yocto" and it can be used for runtime package management. Please note that its GUI doesn't work and you should use it through the command line.
- Show all channels
smart channel --show
- Add a channel, for example with name tizen-all
smart channel --add tizen-all type=rpm-md baseurl=http://server/rpm/all
- Remove a channel, for example with name tizen-all
smart channel --remove tizen-all
- Update the known information about all channels
- Search for packages based on a pattern in the name or in the description, for example:
smart search zip
- Check if package has been already installed, for example:
smart query --installed zip
- Install a package, for example:
smart install zip
- Remove a package, for example:
smart remove zip
- Show details about smart