dev-manual: Edits to the "Setting Up Runtime Package Management" section.

Paul Eggleton sent me corrected procedure.  I implemented his
changes.

(From yocto-docs rev: 581778c52493b662f449bbbed36453f161501c18)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Scott Rifenbark 2013-09-26 14:16:36 -07:00 committed by Richard Purdie
parent ec84110a74
commit d8d5841188
1 changed files with 95 additions and 95 deletions

View File

@ -3628,10 +3628,6 @@
You have a web server, such as Apache 2, You have a web server, such as Apache 2,
installed and configured on the development host. installed and configured on the development host.
</para></listitem> </para></listitem>
<listitem><para>
You have <filename>createrepo</filename> installed on
the development host.
</para></listitem>
<listitem><para> <listitem><para>
You enable package management on the target by You enable package management on the target by
listing "package-management" in the listing "package-management" in the
@ -3641,20 +3637,23 @@
</itemizedlist> </itemizedlist>
</para> </para>
<para> <section id='runtime-package-management-deb-rpm'>
Following are the steps to set up the optional repository. <title>Using DEB and RPM</title>
This example assumes you are using RPM and the Apache 2
server: <para>
<orderedlist> Following are the steps to set up the optional repository.
<listitem><para> This example assumes you are using RPM and the Apache 2
Add the directory to your Apache configuration, which server:
you can find at <orderedlist>
<filename>/etc/httpd/conf/httpd.conf</filename>. <listitem><para>
Use commands similar to these on the development system. Add the directory to your Apache configuration, which
These example commands assume a top-level you can find at
<link linkend='source-directory'>Source Directory</link> <filename>/etc/httpd/conf/httpd.conf</filename>.
named <filename>poky</filename> in your home directory: Use commands similar to these on the development system.
<literallayout class='monospaced'> These example commands assume a top-level
<link linkend='source-directory'>Source Directory</link>
named <filename>poky</filename> in your home directory:
<literallayout class='monospaced'>
&lt;VirtualHost *:80&gt; &lt;VirtualHost *:80&gt;
.... ....
Alias /rpm ~/poky/build/tmp/deploy/rpm Alias /rpm ~/poky/build/tmp/deploy/rpm
@ -3662,93 +3661,94 @@
Options +Indexes Options +Indexes
&lt;/Directory&gt; &lt;/Directory&gt;
&lt;/VirtualHost&gt; &lt;/VirtualHost&gt;
</literallayout> </literallayout>
</para></listitem> </para></listitem>
<listitem><para> <listitem><para>
Reload the Apache configuration as follows. Reload the Apache configuration as follows.
For all commands, be sure you have root privileges. For all commands, be sure you have root privileges.
</para> </para>
<para> <para>
If your development system is using Fedora or If your development system is using Fedora or
CentOS, use the following: CentOS, use the following:
<literallayout class='monospaced'> <literallayout class='monospaced'>
service httpd reload service httpd reload
</literallayout> </literallayout>
For Ubuntu and Debian, use the following: For Ubuntu and Debian, use the following:
<literallayout class='monospaced'> <literallayout class='monospaced'>
/etc/init.d/apache2 reload /etc/init.d/apache2 reload
</literallayout> </literallayout>
For OpenSUSE, use the following: For OpenSUSE, use the following:
<literallayout class='monospaced'> <literallayout class='monospaced'>
/etc/init.d/apache2 reload /etc/init.d/apache2 reload
</literallayout> </literallayout>
</para></listitem> </para></listitem>
<listitem><para> <listitem><para>
Change your working directory to Run BitBake on <filename>package-index</filename>
<filename>tmp/deploy/rpm</filename> in the on the host
<link linkend='build-directory'>Build Directory</link>. <literallayout class='monospaced'>
</para></listitem> bitbake package-index
<listitem><para> </literallayout>
Create the repository data on the host using </para></listitem>
this command: <listitem><para>
<literallayout class='monospaced'> Change your working directory to
createrepo . <filename>tmp/deploy/rpm</filename> in the
</literallayout> <link linkend='build-directory'>Build Directory</link>.
</para> </para></listitem>
<para> <listitem><para>
<note> If you are using Security-Enhanced Linux (SELinux),
If you're updating, add you need to label the files as being accessible
<filename>&dash;&dash;update</filename> to save some time. through Apache.
</note> Use the following command from the development host:
</para></listitem> <literallayout class='monospaced'>
<listitem><para>
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:
<literallayout class='monospaced'>
chcon -R -h -t httpd_sys_content_t . chcon -R -h -t httpd_sys_content_t .
</literallayout> </literallayout>
</para></listitem> </para></listitem>
<listitem><para> <listitem><para>
On the target machine, add the repository to Smart. On the target machine, add the repository to Smart
For <filename>somealias</filename>, provide a local for every package architecture.
alias for the repository: To see the list of package architectures, just list
<literallayout class='monospaced'> the contents of the directory.</para>
smart channel &dash;&dash;add &lt;somealias&gt; type=rpm-md baseurl=http://server.name/rpm <para>
</literallayout> As an example, suppose you list the contents of the
</para></listitem> directory and discover three architectures:
<listitem><para> <filename>all</filename>, <filename>i586</filename>,
Also from the target machine, fetch the repository and <filename>qemux86</filename>.
information using this command: Given this example, use the following commands:
<literallayout class='monospaced'> <literallayout class='monospaced'>
smart channel &dash;&dash;add all type=rpm-md baseurl=http:server.name/rpm/all
smart channel &dash;&dash;add i585 type=rpm-md baseurl=http://server.name/rpm/i586
smart channel &dash;&dash;add qemux86 type=rpm-md baseurl=http://server.name/rpm/qemux86
</literallayout>
</para></listitem>
<listitem><para>
Also from the target machine, fetch the repository
information using this command:
<literallayout class='monospaced'>
smart update smart update
</literallayout> </literallayout>
</para></listitem> </para></listitem>
</orderedlist> </orderedlist>
</para> </para>
</section>
<para> <section id='runtime-package-management-ipk'>
After taking these steps and making sure that the other <title>Using IPK</title>
requirements mentioned at the beginning of the section are met,
reboot the target device to take advantage of runtime package
installations.
</para>
<para> <para>
If your packages are IPK, you can install packages onto an If your packages are IPK, you can install packages onto an
existing running system by first sharing the existing running system by first sharing the
<filename>tmp/deploy/ipk/</filename> directory <filename>tmp/deploy/ipk/</filename> directory
through a web server and then by changing through a web server and then by changing
<filename>/etc/opkg/base-feeds.conf</filename> <filename>/etc/opkg/base-feeds.conf</filename>
to point at the shared server. to point at the shared server.
Following is an example: Following is an example:
<literallayout class='monospaced'> <literallayout class='monospaced'>
$ src/gz all http://www.mysite.com/somedir/deploy/ipk/all $ src/gz all http://www.mysite.com/somedir/deploy/ipk/all
$ src/gz armv7a http://www.mysite.com/somedir/deploy/ipk/armv7a $ src/gz armv7a http://www.mysite.com/somedir/deploy/ipk/armv7a
$ src/gz beagleboard http://www.mysite.com/somedir/deploy/ipk/beagleboard $ src/gz beagleboard http://www.mysite.com/somedir/deploy/ipk/beagleboard
</literallayout> </literallayout>
</para> </para>
</section>
</section> </section>
<section id='testing-packages-with-ptest'> <section id='testing-packages-with-ptest'>