Yum: Difference between revisions
m (Reverted edits by 200.80.122.194 (Talk) to last revision by Quozl) |
|||
Line 55: | Line 55: | ||
=== Memory Limitations === |
=== Memory Limitations === |
||
Yum is slow and memory-hungry on the XO-1 |
Yum is slow and memory-hungry on the XO-1, and might not be usable. |
||
the fedora repositories, yum runs really quickly and does not download |
|||
too much metadata." A command to do this is: |
|||
yum --disablerepo fedora --disablerepo updates -y update |
|||
On recent builds leading to release 10.1.3, there may not be enough memory to use yum. You can adapt to this by: |
|||
* adding [[swap]] space on SD card or USB, to free memory when pressure is detected, |
|||
* temporarily unmount some of the tmpfs filesystems, to free memory, especially <tt>/var/cache/yum</tt>, |
|||
** unmounting <tt>/var/cache/yum</tt> will write yum data to the root filesystem. This is the way yum normally works, and it reduces future downloads. But if you intend no future downloads, or are packaging the result for deployment, then remove the files (<tt>rm -rf /var/cache/yum/*</tt>). |
|||
* stopping Sugar, to free memory being used by Sugar, |
|||
** use the command <tt>stop prefdm</tt>, or switch to runlevel 1. |
|||
** any network connection mediated by Sugar will be terminated, so make a connection using shell commands before trying yum. |
|||
=== Removing Dependencies === |
=== Removing Dependencies === |
Revision as of 06:47, 13 November 2012
Package Manager
Yum is Yellowdog Updater, Modified, a tool for managing Red Hat rpm packages.
To install a particular RPM on the XO, in a terminal enter
sudo yum install package name
package name refers to the specific name of the software to be installed. For example, installing a common web server, the package name might be apache-1.3.9-4.i386.rpm
For more on yum, on the XO, enter
yum -h
On other Linux systems that have "man", enter
man yum
or on many Linux system that use "yum" and "info", but only if you are familiar with "info" or "emacs", enter
info yum
Documentation
Note: To save space, OLPC OS images are configured to not extract documentation from rpm packages to the file system. If there is a specific package for which you might want this overturned, edit the file:
/etc/rpm/macros.pilgrim
and change the line:
%_excludedocs 1
to:
%_excludedocs 0
before installing it. Remember to switch it back after you are done.
Making persistent changes
By default, any packages you install with yum will be removed during the next update, since our update mechanism always aims to provide a clean system install.
If you want to install packages that will persist across updates, first obtain a developer key. Then, as root:
# yum install yum-utils
Then, as the olpc user:
$ mkdir -p /home/olpc/.custom/rpms $ cd /home/olpc/.custom/rpms $ sudo yumdownloader --resolve <pkgname> $ sudo rpm -Uvh *.rpm
This will download the RPM files needed to install <pkgname> into the ~olpc/.custom/rpms
directory. When you upgrade to a new build, on first boot the olpc-configure
program will check your developer key and then install all the RPMs found in that directory.
This is handy in order to ensure (for example) that emacs is always installed on your builds.
If you use this feature a lot, you may find it more convenient to create subdirectories under ~olpc/.custom/rpms for each major program you install, so that you can more easily keep track of which rpms go which what program. The first boot installation will look through all of the subdirectories of ~olpc/.custom/rpms
to find RPMs it should install.
(Note also that if you wish to make regular additions to the .custom/rpms directory that you'll probably want to put the yum-utils rpm itself into that directory, so that yumdownloader is always available.)
See <trac>6432</trac> for more discussion of this feature. This code was written for the 8.2 release and first appeared in joyride-2106. It is not present in 650 (7.1), 653 (7.1.1), 656 (7.1.2), 703 (8.1), 708 (8.1.1), 711 (8.1.2) or 714 (8.1.3).
Tips
Memory Limitations
Yum is slow and memory-hungry on the XO-1, and might not be usable.
Removing Dependencies
When you try to remove packages with yum, it doesn't remove the dependencies. Here is a script that helps you to keep track of those dependencies by logging the outputs of yum.
#!/bin/bash f=/home/olpc/yumlog/`date +%y-%m-%d`.txt echo ========================== | tee -a $f echo yum $* | tee -a $f echo -------------------------- | tee -a $f /usr/bin/yum-real $* | tee -a $f && exit 0 echo "??!!" | tee -a $f echo -e \\n \\n \\n| tee -a $f
Rename /usr/bin/yum to /usr/bin/yum-real, save the script above as /usr/bin/yum and create a directory called /home/olpc/yumlog. Unfortunately "tee" is buffered so you can't see the download-bars and the yes-no-prompt.
External References
- Managing Packages with Yum - including finding installed packages, and searching for more
- Yum HOWTO
- Yum repositories
- Setting up the Yum Client