diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index 66444e18fb..9096ea61a4 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml @@ -2593,6 +2593,8 @@ Handling optional module packaging + Setting up Runtime Package Management + @@ -3072,6 +3074,140 @@ + +
+ Setting Up Runtime Package Management + + + It is possible to set up a repository that is a host-based + package feed from which you can install packages on the + target system during runtime. + Doing so is optional and depends on the following: + + + You take specific steps to set up the feed. + + + When you build your image, you select to use the + RPM package manager by setting the + PACKAGE_CLASSES + variable. + + + You have Apache 2 installed and configured on the + development host. + + + You have createrepo installed on + the development host. + + + + + + Here are the steps to set up this optional package feed: + + + Add the directory to your Apache configuration, which + you can find at + /etc/httpd/conf/httpd.conf. + Use commands similar to these on the development system. + These example commands assume a top-level + Source Directory + named poky in your home directory: + + <VirtualHost *:80> + .... + Alias /rpm ~/poky/build/tmp/deploy/rpm + <Directory "~/poky/build/tmp/deploy/rpm"> + Options +Indexes + </Directory> + </VirtualHost> + + + + Reload the Apache configuration as follows. + For all commands, be sure you have root privileges. + + + If your development system is using Fedora or + CentOS, use the following: + + + Note to Self: Paul says that + some of the distros (Fedora and CentOS in + particular) might have different commands based + on the distro version. + We need links for the reader to follow for the + specifics. + We don't want to have to document all this + distro-specific stuff. + + + + service httpd reload + + For Ubuntu, use the following: + + /etc/init.d/apache2 reload + + For OpenSUSE, use the following: + + /etc/init.d/apache2 reload + + + + Change your working directory to + tmp/deploy/rpm in the + Build Directory. + + + Create the repository data on the host using + this command: + + createrepo . + + + + + If you're updating, add + ‐‐update to save some time. + + + + If you are using Security-Enhanced Linux (SELinux), + you need to label the files as being accessible + through Apache. + Use the following command from the development host: + + chcon -R -h -t httpd_sys_content_t . + + + + On the target machine, add the repository to Smart. + For somealias, provide a local + alias for the repository: + + smart channel ‐‐add <somealias> type=rpm-md baseurl=http://server.name/rpm + + + + Also from the target machine, fetch the repository + information using this command: + + smart update + + + + + + + After taking these steps and making sure that the other + requirements mentioned at the beginning of the section are met, + reboot the target device to take advantage of runtime package + installations. + +
diff --git a/documentation/ref-manual/ref-classes.xml b/documentation/ref-manual/ref-classes.xml index 36f72b85b0..e2f1611b5b 100644 --- a/documentation/ref-manual/ref-classes.xml +++ b/documentation/ref-manual/ref-classes.xml @@ -365,7 +365,8 @@ install packages from the feed while you are running the image on the target (i.e. runtime installation of packages). For information on how to set up this repository, see the - "NEED LINK" section in the Yocto Project Development Manual. + "Setting Up Runtime Package Management" + in the Yocto Project Development Manual.