From Rosalab Wiki
Jump to: navigation, search

The tool is under development now. You can take part in urpm-reposync testing.

usage: urpm-reposync.py [-h]
                        [--include-media INCLUDE_MEDIA [INCLUDE_MEDIA ...]]
                        [--exclude-media EXCLUDE_MEDIA [EXCLUDE_MEDIA ...]]
                        [-v] [-q] [-a] [-p] [-d] [-r] [-c] [-k]
                        [--runselftests] [--detailed]

reposync is used to synchronize a set of packages on the local computer with
the remote repository.

optional arguments:
  -h, --help            show this help message and exit
                        Use only selected URPM media
  --exclude-media EXCLUDE_MEDIA [EXCLUDE_MEDIA ...]
                        Do not use selected URPM media
  -v, --verbose         Verbose (print additional info)
  -q, --quiet           Quiet operation. Senseless without --auto.
  -a, --auto            Do not ask questions, just do it!
  -p, --printonly       Only print the list of actions to be done and do
                        nothing more!
  -d, --download        Only download the rpm files, but install or remove
  -r, --remove          Remove all the packages which do not present in
                        repository. By default, only some of them would be
  -c, --check           Download packages and check wether the ycan be
                        installed to your system, but do not install them.
  -k, --nokernel        Do nothing with kernels.
  --runselftests        Run self-tests end exit.
  --detailed            Show detailed information about packages are going to
                        be removed or installed (why does it have to be done)

Help Reposync Testing

You need a virtual machine with some version of Mandriva or ROSA on-board. Do not forget to create a snapshot.

You can download the attachment and do the following:

1) Setup correct mirrors (you can try other repositories. It would be a great experience too):

sudo urpmi.addmedia --distrib http://mirror.yandex.ru/rosa/rosa2012lts/repository/i586

And in case of 64 bit system:

sudo urpmi.addmedia --distrib http://mirror.yandex.ru/rosa/rosa2012lts/repository/x86_64

(64bit system has some packages installed from i586, so you need i586 repository too)

2) install package pyhton-rpm (sudo urpmi python-rpm)

3) Now configure your media sources and enable all the media (maybe except contrib).

4) Download reposync from link below. sudo python urpm-reposync.py -av | tee /tmp/log_something-to-something

If some errors occurred, and send me the report (/tmp/log_something-to-something).

Please, report me about every problem and about every successful run.

If you have some feature requests - you are welcome, send it to me directly (anton.kirilenko@rosalab.ru)

New Features

  • Trying not to remove packages, even if they are not in repository. But if this package prevents some other package from being upgraded/downgraded - it will be removed. Option "--remove" (or "-r") will remove all the packages which do not present in repository.
  • Option "--detailed" will show some useful information: why the package should be removed (it requires something that will not be installed, it conflicts with something or something conflicts with it) or why the package should be installed (what package requires it).

For example, there can be a line like "U poppler 0.16.7-1(mdv2011.0) 0.16.7-2(rosa.lts2012.0) x86_64"

  • Option "--printonly" (ot "-p") will print one-line list of actions to be done and exit. Every line starts with the letter of action (Upgrade, Downgrade, Remove, Uppend, Save). It's useful for machine processing or to grep this list.
  • Option "--download" (or "-d") will calculate all the actions to be done and download the packages, then exit.
  • Option "--check" (or "-c") will download packages, generate transaction and check it with rpm, then exit.
  • Option "--nokernel" (or "-k") will prevent reposync from dealing with kernels.
  • Option "--runselftests" will run tests. There is not so mach to test, so there is small number of tests.
  • Support of providing dependencies with version with ">" and "<". Some packages provide something like "depname[< 1.0]"
  • Warning about missed media. For example, you have

If there are libraries in your system which are not in repository, but the other architecture presents, reposync will warn you about it.

Planned Features

  • Special mode to repair the system packages (try to fix missed dependencies, remove the older version of packages with multiple versions installed and so on)

Known Bugs

  • There is a total amount of data to be downloaded in summary, but it is incorrect (about 2-3 times greater than real). The size comes from synthesis file (@filesize@ field), but it's incorrect there.

The newest version can be found here here