RPMs for idiots....


I am new to Linux, been using it as my primary system for about two years now. I am at the stage where I am starting to add software that comes from sources other than the installation disk.
For instance, I downloaded a program onto my media stick. I have tried to install it with YAST both from the stick and after copying it to my HD. I get the following error message

There was an error in the repository initialization.
‘home’: Failed to cache repo (1).

  • Project-Id-Version: YaST (@memory@)
    POT-Creation-Date: 2008-04-21 18:58+0200
    PO-Revision-Date: 2007-08-22 14:13+0200
    Last-Translator: proofreader <i18n@suse.de>
    Language-Team: English <i18n@suse.de>
    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    Plural-Forms: nplurals=2; plural=n != 1;

Is there a thread on one of the forums that covers working with RPM files & installation for Idiots like me?

You can use YaST -> Repositories to add a local repository (directory)
by using plain rpms (there is a check box to check).

Then you can use YaST or zypper to install. Else use the following
command to manually install;

sudo rpm -Uhv <name of rpm>

This is always a good reference for other things as well;

Cheers Malcolm °¿° (Linux Counter #276890)
SUSE Linux Enterprise Desktop 11 (x86_64) Kernel
up 2 days 8:54, 2 users, load average: 0.03, 0.09, 0.08
GPU GeForce 8600 GTS Silent - CUDA Driver Version: 190.18

On a side note… Alextroy, you are NOT an idiot at all, not being familiar with something by no means implies any bad thing like being idiot or dumb, so no worries, ask whenever you need! :slight_smile:

Thanks for the in put guys- I wasn’t really slamming myself- it was supposed to be an off hand reference to “The Idiots guide to…” books! :slight_smile: Anyway I will continue to battle away & see what I come up with. One other thing- concerning installing software, is there a difference in dealing with tar.gz files?

Well, tar.gz is nothing more than a compressed archive. There could be anything inside, typically source code, which also typically has instructions on how in install it. Typically RPMs are not distributed in .tar.gz.
Anyway, when you have a .tar.gz, say with filename my_archive.tar.gz, first of all you will have to uncompress it, the command for it is:
tar -zxvpf my_archive.tar.gz

alextroy wrote:
> Is there a thread on one of the forums that covers working with RPM
> files & installation for Idiots like me?

probably all you need is in or linked from http://en.opensuse.org/Concepts

when you compile/install from source (often in tar.gz) that is not so
much an openSUSE thing, but more generic Linux…and, there are about
a million good tutorials available from here:


the only other thing you really MUST know is that the default install
of openSUSE doesn’t include all the development bits needed to
compile, make and install from source…but, that is easily done in
YaST (select to filter on “Patterns”, scroll to “Development” then
select “Base Development”, “C/C++ Development” and maybe that will
be all you need…(i have KDE and Qt4 also selected, but maybe that
was for just ONE package…don’t recall)

OH, and run ‘configure’ and ‘make’ as a normal user ONLY…but, run
“make install” after becoming root in the terminal (use su -)…

and you are cookin’


Firstly, just because it isn’t in the ‘standard’ repos doesn’t mean that there isn’t an easy install for it: That’s not to say that using a hard or harder way of installing is bad, but it may well be unnecessary.

Roughly, in order of ease, easiest first

  • install from a standard repo
  • add an extra repo with the program that you want in it, and then proceed as if it were in a standard repo
  • download the rpm, and put that rpm into you local repo
  • build the program from sources
  • build the program from sources as an rpm

note that if you have a hundred machines to install on, rather than just one, that will tilt the playing field somewhat, and maybe over the hundred installs something down the bottom of the list turns out to be easier overall, or uses less bandwidth, if that is a critical issue.

Anyway, you probably want to know about this ‘add the repo’ method. You need to know two things;

  • in which repo the target program can be found

  • how to add the repo

  • (my method) use the web at Get it to search for a piece of software and look for the software. You don’t, in my method, use Get It to install the software, just get the repo info, so you copy the link address of the repo.

  • Go into Yast, install and remove software, repos, configuration add repo (names vary slightly depending on version of Yast); you need to split the repo into two elements, the first part is the machine name and the second is the directory on that machine

  • Add this repo with a relatively low priority (low priority is equal to a high number, so you can usually use a number of 100 - 120)

Now you can get any package from that repo in the same way as you would with any other package and the install system will keep working in the normal way if that package is updated; ie, you’ll be able to see that an updated version of the program is available when you look for updates in yast.

Note on repo selection; if the package that you want is available in a good general repo like packman, science or education select that rather than a very specific repo, otherwise you will end up adding many repos each of which with one or two packages in it. Well, unless you can only get the version that you need from a very specific repo. (Very specific repos often have someone’s name in them, and are often the work of one enthusiast and are good if you want just the thing that the particular enthusiast is interested in, but are often very narrowly focussed; if that is the only place you can get what you want, add that repo, but if you can get what you want from packman, use that instead.)

(The reason that I don’t go all the way and just use the ‘one click install’ method from ‘Get It’, is that doesn’t give you the control over the priority of the repo, and I’d rather have that control than have to sort it out later, because that can be a bit of a mess, if you have allowed ‘Get It’ to install loads of repos, and you need then to rework it, but YMMV and it is probably tolerable if you only ever add a very small number of extra repos.)

Excelent advice up here :slight_smile: