user-install-deb's People
Forkers
alphapapauser-install-deb's Issues
apt-get upgrade
Tries to upgrade all the dummy packages (if they're out of date).
Is it possible to mark packages as do-not-upgrade
somehow?
Another option could be setting the version to something really high, but that would probably break dependency checks.
Updating placeholders
Currently placeholder packages are only generated on the initial bootstrap.
This probably isn't too bad on the systems I'm running on at uni where they get updated maybe once a year, but on a frequently updated system it could cause problems.
Should add an option to re-generate the placeholders and remove any uninstalled ones.
Fallback to real root
We use a fakechroot so we can write to /
.
Files that we don't want to write to (such as apt-get
library / config folders) can be linked in to the fakechroot.
However this requires manually doing so on a case-by-case basis whenever things break.
There are also problems with scripts which have hardcoded #!/usr/bin/interpreter
, which does not exist in the fakechroot (but do exist at that location on the real root).
A possibly better solution would be as follows:
- When reading a file, use the file from the fakechroot if it exists, else fallback to the real root.
- When writing to a file, create the file on the fakechroot if it is not already on the fakechroot, then write to that file.
Problems:
fakechroot
does not appear to support this functionality (would need to find/write a tool that supports this).- No way to "delete" a file that exists on the real root.
Status?
Hi, I just stumbled upon this because you starred one of my repos. This sounds amazing. Even though I personally don't need to install debs without root permissions, I guess this could be essentially used as a lightweight container for almost any deb package, right? And I guess it could even be used to contain changes to the user's homedir by not passing it through, right?
That could be very useful for testing new packages, or testing upgrades of existing ones. Am I right that this would, for example, allow you to install a package from another archive and upgrade its dependencies too? For example, you're on Jessie, want to install something from Testing, but it needs a bunch of dependencies from Testing, and you aren't sure how well that will go, so you use this to essentially dry-run the operation before running it for real.
It just sounds amazing, and it seems so simple too--well, other than the patching that you obviously spent many hours figuring out. :)
Fails to start scripts with hardcoded interpreters
Scripts with a hardcoded interpreter #!/usr/bin/interpreter
instead of #!/usr/bin/env interpreter
fail to start inside the fakechroot because the interpreter only exists on the real root.
This could be fixed by #5, or by overwriting execve
to automatically fix the interpreter (presumably this is possible with LD_PRELOAD?)
apt-get update
Doesn't work because we're using the package lists from the main system which we don't have write access to.
Probably not a good idea to maintain a separate copy of the list, so I guess we're just stuck with waiting for the system to automatically update the lists (I think its on a schedule for Ubuntu by default?)
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.