#769577 how to configure reprepro to make repository of what is installed on host

Package:
reprepro
Source:
reprepro
Description:
Debian package repository producer
Submitter:
Richard Betham
Date:
2014-12-14 20:33:05 UTC
Severity:
normal
#769577#5
Date:
2014-11-14 15:58:52 UTC
From:
To:
Dear Maintainer,

I wish to be able, conveniently to make a repository containing
the packages which:
+ are installed on my computer; and
+ are not included in the Official DVD, (or are a later version).
I prefer the new repository to contain the versions of packages which
are installed in my computer.
These have always been tested, even if not much.
I wish to copy the result to a CD-R, or to a DVD, which
should be acceptable to apt-cdrom, and to apt-get.
(apt-move used to do almost this.)

It is not obvious from the documentation of reprepro, how to do this.

I have started trying to make a script file to do this.
Does anybody else want it?
Has anybody already written one?

Is there an easy way to make a repository containing only installed
packages?

Thank you very much for maintaining reprepro.

with best regards from
Richard Betham

#769577#10
Date:
2014-11-17 18:33:16 UTC
From:
To:
* Richard Betham <richard@betham.org.uk> [141114 18:06]:

To get the list of installed packages suitable for reprepro, do:

dpkg --get-selections | sed -e 's/:[^ \t]*//' > conf/mylist.lst

This you can then give to reprepro in a conf/updates block listing
the source where you get your packages and add something like

FilterList: purge mylist.lst

to make that update rule pull only package that you have installed.

Removing newer packages than some given set is not that easy AFAIK.
(There is support for the other way around: Doing a mirror with only
packages from the DVD that you do not have a newer version around).

If you compare the versions yourself and know which packages not to
include, you can add create another list with "<packagename> purge"
in each lines and give that to FilterList to exclude them:

FilterList: purge mylist.lst without.lst

Hope that helps,
	Bernhard R. Link

#769577#15
Date:
2014-12-02 17:32:28 UTC
From:
To:
It is useful to know that I must remove the ":" and whatever follows,
from the end of the package name,
so that it will be suitable input for reprepro FilterList.

I have got my Makefile script file to work well enough
to generate an image for a cdrom which seems to
be acceptable to apt-cdrom, and to apt-get.

However, when I run my script again, trying to use the cdrom as one
of the sources, reprepro generates an error message and aborts.
The text of the error messages is copied into the attached file
called "make.op.txt"

I have tried various variants of the update file,
using:
Method: cdrom:[...]
Method: cdrom://[...]
Method: cdrom:"[...]"

I did not put "...",
I put "Debian~Wheezy~in~part~as~at~2014-11-29+21:20:36".
I prefer to have spaces in the name, but that seemed to cause
trouble.

I attach copies of various files which seem relevant.

Please advise me of the correct format for the line
in the file conf/updates, which starts:
Method: cdrom:...

I am attempting to write a make script file, to cause reprepro,
to put onto cdrom, some of the packages which are installed
in the computer which runs the script file.
I have succeeded in using
Method: file:/...
in my update file.

Thank you very much for maintaining reprepro.

with best regards from
Richard Betham

#769577#20
Date:
2014-12-14 20:31:44 UTC
From:
To:
* Richard Betham <richard@betham.org.uk> [141202 19:48]:

I guess that still needs to be added to the documentation.
(Those :architecture are a relatively new addition to the dpkg
--get-selections output format added due to multi-arch support)

I haven't yet used the cdrom method with reprepro, so I am a bit of a
loss what the correct syntax is. Adding enough verbosity (I think you
need several -V to get to those details) you can see what reprepro
gives the apt cdrom method. I don't knwow that format the apt method
expects exactly, but doc/method.dbk in apt source package lists some
example URLs:

file:/var/mirrors/debian/
ftp://ftp.debian.org/debian
ftp://jgg:MooCow@localhost:21/debian
nfs://bigred/var/mirrors/debian
rsync://debian.midco.net/debian
cdrom:Debian 2.0r1 Disk 1/

so I guess it might be a single colon without any other additions
(though I do not know how current that example is).

Perhaps it is easier to just mount the .iso files somewhere and
just use the file:/ method.

	Bernhard R. Link