<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=132.230.30.159</id>
	<title>Maemo Wiki Mirror - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://maemo.octonezd.me/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=132.230.30.159"/>
	<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php/Special:Contributions/132.230.30.159"/>
	<updated>2026-04-22T08:44:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://maemo.octonezd.me/index.php?title=Reprepro&amp;diff=35856</id>
		<title>Reprepro</title>
		<link rel="alternate" type="text/html" href="https://maemo.octonezd.me/index.php?title=Reprepro&amp;diff=35856"/>
		<updated>2009-12-29T18:42:44Z</updated>

		<summary type="html">&lt;p&gt;132.230.30.159: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://mirrorer.alioth.debian.org/ reprepro] is a tool to create and manage debian package repositories. This page documents its installation on stage.maemo.org, the Maemo repository server. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Preparation &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Before setting up the repositories, I read that it might be good idea to have a separate partitions for the repositories. From the reprepro man pages: &amp;quot;The most annoying problem not yet worked around is database corruption when the&lt;br /&gt;
disk runs out of space. Ideally put the database on another partition to&lt;br /&gt;
avoid that.&amp;quot; So it seems clear that a large disk is necessary for the package&lt;br /&gt;
repositories. &lt;br /&gt;
&lt;br /&gt;
reprepro has some dependencies, notably Berkeley DB, and it recommends&lt;br /&gt;
gnupg-agent and inoticoming. Using inotify and inoticoming to check for&lt;br /&gt;
incoming packages is also central to the repo system, it&#039;s worth noting that&lt;br /&gt;
inoticoming and reprepro are maintained and written by the same person.&lt;br /&gt;
&lt;br /&gt;
So, in short, I&#039;ve installed these packages and their dependencies on the repository server: reprepro, libdb4.2, and inotincoming. (I used this command:&lt;br /&gt;
aptitude install reprepro inoticoming libdb4.2)&lt;br /&gt;
&lt;br /&gt;
-- Note: explicitly stating libdb4.2 does not make much sense here. aptitude will get whatever version of that crappy lib reprepro needs just fine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Set up &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The first step I took was to create directories for the binary deb packages:&lt;br /&gt;
&lt;br /&gt;
    mkdir /srv/extras/&lt;br /&gt;
    mkdir /srv/extras-devel/&lt;br /&gt;
    mkdir /srv/extras-testing/&lt;br /&gt;
&lt;br /&gt;
Here we&#039;re putting the directories under the /srv/ directory so that we can isolate them from the rest of our web content. I have installed nginx to serve the repos because it is small and fast.&lt;br /&gt;
&lt;br /&gt;
-- Note: If you try this at home, it&#039;s usually a good idea to only make one repository and the different projects just different distributions within that. (Unless you have a reason against that, of course).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Configuration &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To create a configuration file for reprepro, we need to create a &amp;quot;conf&amp;quot; dir for each of our top level directories. So for diablo extras, we&#039;ll have a configuration file called /srv/extras/conf/distributions. We can add a configuration for fremantle extras in the same file since you can have multiple distros per configuration. Here is my distribution file for &#039;diablo&#039;:&lt;br /&gt;
&lt;br /&gt;
 Origin: maemo.org&lt;br /&gt;
 Label: Maemo&lt;br /&gt;
 Suite: extras&lt;br /&gt;
 Codename: diablo&lt;br /&gt;
 Version: 0.1&lt;br /&gt;
 Architectures: i386 armel source&lt;br /&gt;
 Components: free non-free&lt;br /&gt;
 Description: Maemo.org package repositories for diablo&lt;br /&gt;
 Log: /var/log/repos/  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Logging &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have tried to make reprepro as verbose as possible, at least to start with. The logs are held in a directory along with the inoticoming logs in /var/log/repos/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Adding packages &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Now once we have reprepro set up, we can add a package this way:&lt;br /&gt;
 sudo reprepro -Vb . includedeb diablo /home/jeremiah/maemo-perl-packages/libv-perl_0.13-1_all.deb&lt;br /&gt;
&lt;br /&gt;
The -b flag tells reprepro where its base dir is, here represented by the current dir (.) but you can export a variable with REPREPRO_BASE_DIR. Those type of directories are all configurable with reprepro and well documented in the man pages.&lt;br /&gt;
&lt;br /&gt;
Here is the output from that command, showing how reprepro created the needed directories and also added a tracking database as well as exported indexes;&lt;br /&gt;
&lt;br /&gt;
 Created directory &amp;quot;./db&amp;quot;&lt;br /&gt;
 /home/jeremiah/maemo-perl-packages/libv-perl_0.13-1_all.deb: component guessed  as &#039;free&#039;&lt;br /&gt;
 Created directory &amp;quot;./pool&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./pool/free&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./pool/free/libv&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./pool/free/libv/libv-perl&amp;quot;&lt;br /&gt;
 Exporting indices...&lt;br /&gt;
 Created directory &amp;quot;./dists&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./dists/diablo&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./dists/diablo/free&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./dists/diablo/free/binary-i386&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./dists/diablo/free/binary-armel&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./dists/diablo/free/source&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./dists/diablo/non-free&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./dists/diablo/non-free/binary-i386&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./dists/diablo/non-free/binary-armel&amp;quot;&lt;br /&gt;
 Created directory &amp;quot;./dists/diablo/non-free/source&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; More information &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
http://wiki.debian.org/HowToSetupADebianRepository&amp;lt;br&amp;gt;&lt;br /&gt;
http://alioth.debian.org/scm/viewvc.php/*checkout*/mirrorer/docs/manual.html?revision=HEAD&amp;amp;root=mirrorer&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.debian-administration.org/articles/286&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>132.230.30.159</name></author>
	</entry>
</feed>