I want to host my own ArchLinux pacman repository for my own packages. I already found out, I can simply create a repo by just using repo-add and if I upload the generated foo.db.tar.gz and its symlink to my webserver, I can access this repo by just adding the following lines to my /etc/pacman.conf
[foo] Server = http://example.com/foo/
But when I now add another package to the repo and again upload the foo.db.tar.gz to the web server, then run pacman -Syy and try to install the new package with pacman -S bar, the package can't be found.
Also, if I just run pacman -Sy, pacman tells me, there are no changes for my own repo.
So, what is wrong with my configuration? I think my apache has to be configured in a special way, but I can't find any hint on the web. Any idea?
Note: the apache web server runs on a ubuntu server
Last edited by jsnlry (2012-09-27 09:30:05)
Check man pacman.conf , REPOSITORY SECTIONS .
Server = url
A full URL to a location where the database, packages, and signatures (if available) for this repository can be found.
In short, you will need to upload the packages to the same location on your webserver where you have the db/symlink .
Booting with apg Openrc, NOT systemd.
Automounting : not needed, i prefer pmount
Aur helpers : makepkg + my own local repo === rarely need them
Ok, but if I understand this right, I think it's correct. At the url mentioned above I can find the link ending with .db and a file ending with .db.tar.gz. So the full urls are similar to the following:
What's wrong with this configuration?
Oh, and yes, I upload the updated .db.tar.gz and the .db symlink to this folder (I actually upload it via SSH but it's the folder that is shared via HTTP).
Try running pacman with --debug and post the output.
EDIT: And don't forget the .db.tar.gz is just a tarball... Extract it to make sure it is being updated correctly and does have the package info in it.
Last edited by fukawi2 (2012-09-24 23:29:08)
Thanks for the tip with the tar.gz, but there is the newly added package. When I update pacman with -Syy and search for the new package, it still can't be found.
When I run pacman with --debug I see the following lines:
... debug: url: http://example.com/foo/foo.db debug: maxsize: 26214400 debug: opened tempfile for download: /var/lib/pacman/sync/foo.db.part (wb) downloading foo.db... debug: curl returned error 0 from transfer debug: response code: 200 debug: url: http://example.com/foo/foo.db.sig debug: maxsize: 16384 debug: opened tempfile for download: /var/lib/pacman/sync/foo.db.sig.part (wb) debug: curl returned error 22 from transfer debug: failed retrieving file 'foo.db.sig' from example.com : The requested URL returned error: 404 Not Found debug: "/var/lib/pacman/sync/foo.db.sig" is not readable: No such file or directory debug: sig path /var/lib/pacman/sync/foo.db.sig could not be opened debug: missing optional signature ...
Is it because of the signature?
Sooooorry. For any reason the foo.db was not a link to foo.db.tar.gz and for any other reason it did not get updated when I uploaded the new version.
So, I removed it and recreated the symlink directly on the server, and now it works.
Anyway, many thanks for trying to help me!