Comments (8)
Thanks for your feedback!
cpcache currently does not support any functionality related to AUR.
Please correct me if I misunderstood your use case: I assume you have multiple machines that all fetch their pacman packages from a single machine that runs cpcache, and you want cpcache to also host packages built with yay?
If that's the case, then I don't see any easy way to implement this functionality. cpcache serves files via HTTP, and AUR helpers like yay only fetch the PKGBUILD and related files via HTTP in order to build the actual package locally. I just glanced through the man page of yay, and the only kind of cache it supports is a local cache directory, but no HTTP mirrors.
So I guess that file systems like SSHFS or NFS are better suited for this use case.
from cpcache.
Hey there @nroi. I think a better implementation would be working with something like Aurutils and aurto. They create local repositories that server build AUR packages. They're built as root (in chroot) then the user owns them. It would be great if there was a way for cpcache to serve the repository along with the cache. Adding something in the toml to point to the custom repo. In aurto's case it sits in
https://github.com/alexheretic/aurto
Here's the project
from cpcache.
It would be nice not to have to setup another webserver to serve these packages and just take advantage of cpcache
from cpcache.
Interesting, I didn't know of aurto yet. It changes your pacman config to include a local repository:
[aurto]
SigLevel = Optional TrustAll
Server = file:///var/cache/pacman/aurto
So all that would be required by cpcache is the ability to define local repositories in the TOML config, e.g. a mapping like:
[[localrepo]]
name = "aurto"
location = "/var/cache/pacman/aurto"
# Allow to define additional localrepos:
# [[localrepo]]
# name = "another_local_repo"
# location = "/var/cache/pacman/another_local_repo"
For incoming GET
requests, it would then check if the path refers to a localrepo
.
Each client that intends to use the AUR cache would have to modify its pacman config:
pacman.conf
:
Include = /etc/pacman.d/aurto
/etc/pacman.d/aurto
:
[aurto]
SigLevel = Optional TrustAll
Server = http://localhost:7070/aurto
I have to look into this in more detail, but at first glance, it seems this can be implemented without too much effort.
from cpcache.
This is exactly an implementation I was looking for and I though it would be great for your project ! I have to constantly build linux-mainline, and it would be great just to pull a pre-compiled package from my server. Any contributions you'd like me to make I would be happy to help!
from cpcache.
I'm going to test this before pushing the new version to AUR.
from cpcache.
This is so cool ! I can do some testing tomorrow. Thank you so much
from cpcache.
I pushed the new version to AUR and explained the configuration in the README.
I don't use many AUR packages myself, so in case there are some issues related to this functionality: feedback is always welcome.
from cpcache.
Related Issues (20)
- Downloads sometimes stall for small files HOT 2
- archlinux.org mirror list is a single point of failure
- Log download info in dets: Which files have been dowloaded, and how?
- Connection to remote mirror interrupted when other clients are still downloading
- Speed limit for :dev and :test environment applied for :prod HOT 2
- Improve mirror selection process HOT 2
- Listen both on 127.0.0.1 as well as ::1
- Refactor HTTP Server functionality into separate module
- Use Elixir releases
- Re-organize test cases, use tags
- Consider using mint instead of hackney HOT 3
- Package from AUR not building HOT 1
- Resolve HTTP 500 errors caused by bumping eyepatch version HOT 6
- Unable to fetch mirror data HOT 2
- ARM clients? HOT 3
- Custom timeout for clients HOT 4
- Remove hardcoded mirrors in toml file
- Swap mirror during download when too slow
- Re-using connections
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cpcache.