Go Back   openSUSE Forums > Archives > SLS Archives > ARCHIVES - Linux Tweaks > ARCHIVES - Tips, Tricks & Tweaks
Forums FAQ Members List Search Today's Posts Mark Forums Read


ARCHIVES - Tips, Tricks & Tweaks Post your tips, tricks and tweaks about SuSE Linux in here. Please do not ask questions here - this is for factual information

 
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 25-Jul-2007, 22:36
linux_learner
Guest
 
Posts: n/a
Default

You can add repos to rpm by following the man page for rpmcache. http://linux.die.net/man/8/rpmcache
Quote:
Description

rpmcache walks a file tree, possibly remotely using FTP, filtering paths using glob(7) expressions, reading rpm package headers. The latest (i.e. comparing package epoch/version/release for identical package names and using the build time as a tie breaker) package headers, if they are unique, are cached in an rpm database. The rpm database cache can be used to provide suggested paths to packages that resolve unknown dependencies.

There are no rpmcache specific options, only common rpm options. See the rpmcache usage message for what is currently implemented.

The file tree path to be searched is configured using rpm macros. The final path is the concatenation of 5 individual elements. Here are the macro names used to configure rpmcache, in the same order that they will be concatenated to build the file tree path that will be walked:

%_bhpath
The "path" level contains the leading part of the file tree path (or URL) for the file tree to be walked. No glob(7) expressions, here, please.
%_bhcoll
The "collection" level contains a string (or glob(7) expression) to match sub-directories of %_bhpath.
%_bhN
The "name" level contains a string (or glob(7) expression) to match sub-directories of %_bhcoll. The PACKAGE_NAME arguments are used to construct a glob(7) expression that will match any of specific package names within the Red Hat build system, and are almost certainly not of use to anyone outside of Red Hat.
%_bhVR
The "version-release" level contains a string (or glob(7) expression) to match sub-directories of %_bhN.
%_bhA
The "arch" level contains a string (or glob(7) expression) to match sub-directories of %_bhVR.

The location of the cache database is also configured using an rpm macro:

%_cache_dbpath
The location of the cache database. The default value is /var/spool/up2date/cache.

The cache database is identical in format to an rpm database, and can be used with rpm from the command line. For example, to use the cache database to provide suggestions for packages that provide dependencies needed by a package install, the following macro should be configured in either /etc/rpm/macros or ~/.rpmmacros:

%_solve_dbpath
The location of the database that is used to provide suggested dependency resolutions.

Example (minimal) configuration for a Red Hat beehive tree:


Code:
%_cache_dbpath**/var/spool/up2date/cache
%_solve_dbpath**%{_cache_dbpath}
%_bhpath********file://localhost/mnt/redhat/beehive/comps/dist
%_bhcoll********7.3
%_bhN********** @(basesystem|bash|filesystem|glibc-common|glibc|ldconfig|libtermcap|mktemp|setup|termcap)
%_bhVR***********
%_bhA********** @(i[3456]86|noarch)
Example (minimal) configuration for a Red Hat FTP tree:


Code:
%_cache_dbpath**/var/spool/up2date/cache
%_solve_dbpath**%{_cache_dbpath}
%_bhpath********ftp://localhost/mnt/dist
%_bhcoll********@(7.3|7.2|7.1|7.0|6.2|6.1|6.0|5.2|5.1|5.0)
%_bhN********** @(%{_arch})
%_bhVR***********
%_bhA********** @(i[3456]86|noarch)
[/b]
The examples are oviously for Redhat, so modify it for SUSE.

Now with rpmcache set with repos, you can issue the rpm -U * command, and it will upgrade the packages on your system based off the repos you have added.

Enjoy this tip
  #2 (permalink)  
Old 26-Jul-2007, 03:08
deltaflyer
Guest
 
Posts: n/a
Default

dang,Excellent tip. tried it & it worked a treat.faster than yast as well


andy
  #3 (permalink)  
Old 26-Jul-2007, 06:06
linux_learner
Guest
 
Posts: n/a
Default

Quote:
dang,Excellent tip. tried it & it worked a treat.faster than yast as well
andy
[/b]

Now if I could build a GUI for this (rpmgui ?), to make it even easier.
  #4 (permalink)  
Old 26-Jul-2007, 06:08
deltaflyer
Guest
 
Posts: n/a
Default

good luck, if you can i'd be more than interested in testing.my programming skills are next to nothing now, have enough trouble programming the dvd recorder these days

andy
  #5 (permalink)  
Old 29-Jul-2007, 18:54
linux_learner
Guest
 
Posts: n/a
Default

Here is more information on rpm macros http://docs.fedoraproject.org/drafts/rpm-g...mizing-rpm.html

Rpm macros allows you to control rpm, the way you'd like. It is part of rpmcache, which I gave above.

There are 3 places you may find the rpm macros;

1) /etc/rpm
2) /usr/lib/rpm
3) ~/.rpmmacros

I'd speculate, that the 3rd one is not created by default. The 3rd one would be good to customize per user, instead of global/system wide customizations.

I have an example of an rpm macros from my openSUSE 10.2 box for the kernel, at my site http://thecompletecomputerresource.com/for...pic=134.new#new This one was found in /etc/rpm

There is a file called "macros" in /usr/lib/rpm

They advise not to make changes to macros in /usr/lib/rpm as it will be over written when rpm is upgraded.

The one in /user/lib/rpm is global. The ones in /etc/rpm are for specific packages, such as kernel, gtk, or jpackage.

So you can use macros for system wide changes, or for package specific settings, or user based settings.

I hopes this helps you gain more control, and understand your rpm distro better.

If you have questions or comments, ask.
  #6 (permalink)  
Old 31-Jul-2007, 21:17
linux_learner
Guest
 
Posts: n/a
Default

I was asked by someone, "How can downloading entire repos be faster than rpm-md?" So I looked around and asked questions. #rpm is an awesome resource, and jbj__ has been especially helpful. So here is the answer. Edited, so that hopefully it will make some sense.

Quote:
rpmcache loads headers directly from packages, loads into a rpmdb. no rpm-md involved.

"faster" is indeterminate. loading headers is what is needed to use rpmlib, sooner or later rpm-md is useless cruft, headers will need to be downloaded too. the win in rpmcache is that it can be done incrementally, one time, from cron etc.

the win for rpm-md is avoiding "unnecessary" header downloads.

<linux_learner> using (in my case suse 10.2) repos, then as opposed to yast
<linux_learner> it would check the deps based off of rpm db, and load the headers incrimentally
<linux_learner> which is faster than rpm-md
<linux_learner> is that about right?

that's what is supposed to happen. rpmcache exists, the wiring in rpm exists, tying the pieces together remains to be done.[/b]
So, the tip I am providing here, is tying in the various pieces of rpm, to use rpm as it was really meant to be used.
 

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




 

Search Engine Friendly URLs by vBSEO 3.3.0 RC2