Runtime package management in Tizen on Yocto with Smart

From Tizen Wiki
Jump to: navigation, search

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.
bitbake package-index
  • 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
smart update
  • 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
smart update


  • 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
smart --help

See also