Comments (13)
Have a look at: https://www.archlinux.org/packages/extra/x86_64/git/ git depends on a lot of things, how should such a bundle be handled ?
from minimal.
from minimal.
@brandonros - Minimal Linux Live
is mostly an educational tool. The whole idea of the project is to present the basics of the infrastructure which is required for the building of Linux based operating system. Anything beyond that scope is just a nice to have feature.
Packing Git
or any other software which requires a lot of dependencies is a problem which has no easy solution. Therefore, it is not at all simple to add such software in MLL. You may try to track all the dependencies (e.g. issue the ldd
command on the executable and recursively apply the same command on all found dependent objects until you are done) but in this case you will end up with so much dependencies that it would have been much easier to start with Ubuntu Mini
for example or any other distribution with minimal installation.
I like the idea of static-get
. I'll give it a try and if it works I may add it as overlay bundle in the future. In fact, considering that the front-end of static-get
is a simple shell script, you could try to add it in the default overlay structure by yourself. All you need to do is to download the latest static-get shell script and put it in the default overlay folder.
Example:
# Step 1 - Provide the static-get shell script as part of the default overlay structure
wget http://raw.githubusercontent.com/minos-org/minos-static/master/static-get
mkdir minimal_overlay/rootfs/bin
mv static-get minimal_overlay/rootfs/bin
chmod +rx minimal_overlay/rootfs/bin/static-get
# Step 2 - Build MLL
sh build_minimal_linux_live.sh
The above build procedure should generate new MLL ISO image which contains the static-get
shell script in the /bin
folder. You should be able to use the static-get
command from any location when you boot MLL since the /bin
folder is described in the default PATH
.
from minimal.
I created a PoC (proof of concept) build of MLL which includes the static-get
script. It turned out that it doesn't work out of the box due to issues with the BusyBox
version of wget
. While I was working on that I also found a bug which prevented the MLL user to use both overlay bundles and stuff from the default overlay folder. It was either/or situation. It's fixed now.
Regarding static-get
- it is a very promising project which will integrate well with MLL. Once there is working wget
in MLL (i.e. not the default one which comes with BusyBox) you can install pretty much anything but not all static-get
packages work out of the box. For example, Git
currently requires you to explicitly disable the remote TLS/SSL certificate check. It's an easy fix but you have to provide it manually. Other packages don't work due to issues with the default terminal. I have no solution for this at the moment.
One more thing - static-get
doesn't really install anything. It just downloads and extracts the package in some folder. After that it's up to the user to install the files/folders from the package like this:
# Assuming we are currently in MLL shell.
# Kind of install something with 'static-get'
static-get -x some-package
# Enter the 'some-package' folder.
cd some-package-v1.2.3
# Copy/install the package structure in the root folder.
cp -r * /
I won't be developing my PoC stuff for now (and I should have done it in separate Git branch). Perhaps @bauen1 will be ready with his overlay bundle for static-get
in the near future.
from minimal.
Yet another way to install the software that you want - just navigate to the static-get archive, browse through the available repositories, download the archive that you want and finally create new overlay bundle or just place the extracted content in the default overlay folder.
Actually this is the better way to get more mature version of wget
. Instead of relying on static-get
to obtain it, we can manually (i.e. via the build scripts) download & extract the wget
package and include it as part of the static-get
overlay bundle.
from minimal.
I came across this issue a few days back just after I discovered this project. I immediately set about trying to resolve it when I discovered it had already been done, and works as expected. I therefore have two questions;
- Are there immediate plans to incorporate a way to actually install the downloaded packages?
- If not, does this issue still need to be open?
I am a great fan of this project, and look forward to helping out where I can.
from minimal.
There is no immediate plan. You are welcome to implement the installation phase if you want to and I'll be happy to merge it in the project. Apart from that, perhaps you are right that this issue doesn't have to be in "open" state at all, since the software in MLL is mostly provided by overlay bundles.
from minimal.
I'll take a look at implementing the installation phase. I have a bit of time off from my studies coming up!
from minimal.
So I've managed to get installing working by adding a -i
flag to the static-get
command. I've submitted a pull request to the upstream, but in the meantime I've redirected the overlay bundle to download my fork. I'm submitting a pull request now.
from minimal.
@the-djdj - thanks a lot! I tested your solution and it works as expected. Some of the packages require additional packages (e.g. you have to install 'terminfo' before you use some other package) but that's expected, due to the nature of static-get.
However, additional documentation changes are required, or otherwise people won't know that they can add more software at runtime. The main README has to be enhanced, along with the other internal documentation files (config file, src/README, etc.).
from minimal.
As an FYI, you can now specify an install location using static-get -i -p <location> <package>
.
from minimal.
Are you planning to propose your changes in the official "static-get" project?
from minimal.
My changes have been merged in, I'm just waiting on the original download link to update.
from minimal.
Related Issues (20)
- Migrate Travis CI workflow to GitHub workflow HOT 1
- Implement Xorg with FLWM onto MLL HOT 3
- Missing CRC32 at the rootfs compression HOT 3
- Missing gpg and or at least sha256 hash check against MtM attacks HOT 2
- Grouping of the log output / missing logs HOT 1
- Fails to build on Ubuntu 20.04.2 LTS HOT 3
- [Package Request] jwm HOT 1
- pulling in bundles from web...live HOT 2
- Your linker does not support HOT 1
- yo HOT 1
- Update v86 HOT 2
- How to get 32-bit version? HOT 2
- Build, Compile errors and package download file was missing... HOT 2
- can't build the iso. HOT 1
- Files not available
- make[2]: *** [scripts/Makefile.build:357: arch/x86/entry/thunk_64.o] Error 1 HOT 2
- How to add minimal GUI HOT 1
- Dead links in README.md
- All builds end up with Kernel panic - not syncing: No working init found HOT 4
- Possible issues with connecting tty / ttyS0, qemu, virtual console
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 minimal.