ISM - Ingenius System Manager (Linux)

Hello, I’m happy to introduce my project to the Crystal community.

One year ago, because I discovered Crystal, and I was happy to finally found a language with the Ruby syntax with the compiled language performance, I decided to start my project to make a system manager for Linux.

I started to think my project already before , I made an essay with Ruby 3 years ago. And I decided to rewrite my project in Crystal.

I’m a Gentoo Linux from a while , and my goal was to build a tool able to install a full Linux System from scratch, and as well able to provide an easy way to manage the system settings without need to edit files manually.

My project isn’t finish at all, and is actually highly experimental.

I will provide you in few days a video to show the result.

Actually ISM is able to install softwares and check the dependencies, and as well to remove softwares.

I hope in the future my project will be able to help me to make a Linux distributions for everybody.

Link: GitHub - Fulgurance/ISM: Ingenius System Manager

15 Likes

This is the video I made to show you the result :smiley:
I recommand you to watch in on Youtube directly, the quality will be better.
Sorry if you can hear me a little bit sometimes during the video, I forgot to shutdown the sound :rofl:

6 Likes

Hi again. I would like to request to the crystal community a help to debug my software. If some of you all have a bit of time, know well linux and have the kindness to help me!

My readme actually isn’t full of explanation, and there are some missing information to use ISM properly, if you would like to help, just let me know and I will update the readme.

Actually ISM follow the 11.0 version of LFS, I would like first to make sure it work properly before update to a new version of LFS.

In few words, ISM is the software, but this software need to open ports to install others softwares. Actually there are 2 ports availables.

This ones:

This two repositories are the very first step of the LFS (steps 1 to 7). Actually ISM is able to compile steps 1 to 6.

7th step compilation don’t work actually, that why as well I ask for help. I think I have to check in some installers if they install properly some softwares or make properly symlinks.

When ISM finish the step 6, the chroot don’t work, so something is wrong.
I have this error: chroot failed to run command /usr/bin/env: no such file or directory
And when I try to compile libstdc++ from the 7th step of LFS, I have some errors like: __gthread_time_t was not declared in this scope
Do you need I make like a Slack discussion or something like that ?

I solved the problem. Now my software is able to install all of the crosstoolchain and temporary tools of the LFS book, and I tried the chroot, it work !

I hope this project will help crystal to be more famous :smile:

1 Like

Hi again, I’m happy to announce to the crystal community now ISM have it first pre-release available.

As well now, a very first guide to try the software is available at the github wiki page:

So feel free to try it and report usefull suggestions or bugs !

3 Likes

Just to let you know, now the guide provide a virtual machine ready to use for anyone would like to have a look and try to use it :blush:

It’s available at the right side of the guide.

This looks interesting, but I am not sure I really understand what it is/does.

So this creates your own distro from scratch?
and the output is a VM? or an image you can take to a cloud provider?
and it also does configuration management?

Yes this create your own distro from scratch exactly.

The VM is just here if you would like to save time. Because inside I installed already everything you need to try ISM . It’s just for that.

And yeah, I plan as well to make able the software to manage the configuration. I would like to provide an another way than just edit config file with nano of vim.

1 Like

Hi, sorry long time no see ! I just wanted to share you a screenshot of the advancement of my project.
You can see now my project is able to build a full minimal linux system from scratch !

5 Likes

Hi again everyone, just to keep you all up to date, the project make progress very fast.

Now the software is able to install a full desktop environment. It become more stable every day.

I will try to realize soon a full video in english to show the result.

Thanks everyone for your very helpful support as well

7 Likes

Hi ! I am happy to share you the first introduction video of the project. This video is in french. No worries, I will publish soon this introduction in English.

The next video will show you the software in use.

2 Likes

Hi ! I am happy to share you the second video of the project. This video is in french.

This one will show you how to configure and install the project ISM, with the Ubuntu Live CD.

French sounds great! although i have no idea what’s talking about

1 Like

Yeah sorry. I am working on the subtitles in English. Just be a bit patient. I do my best. When it’s available, I will let you know

It’s longer to translate and write than just speak in English :sweat_smile:

1 Like

I finished the translation of the ISM video presentation.

So now the english subtitles are available ( Translated by myself)

1 Like

Hi everyone ! I am happy to announce today I published the Alpha-07072023 version of ISM.

Revision and improvements of the last major release

  • patched some bugs and minor improvements
  • improved a lot implementation
  • added software uninstall feature
  • improved software search output
  • added correction for dependencies order when some of them have different options
  • improved a lot dependencies calculation time
  • fixed some graphical issue when printing the current ism task on the terminal title
  • added new calls for installation script
  • patched bug when checking pass existence
  • full rewrite of patches detections, sources format detection
  • added mirror support

Release page: Release ISM - (Alpha-07072023) · Fulgurance/ISM · GitHub

Main page: GitHub - Fulgurance/ISM: Ingenius System Manager
Wiki: Guide (EN) · Fulgurance/ISM Wiki · GitHub

1 Like

Hi everyone ! Just to let you know now, the first link to the ISM API is now available.

Actually there isn’t a lot of informations about the functions, but I will do it no worries.

API Documentation: ism-mirror.co.uk/api

1 Like

Hi everyone, long time I didn’t post ! But the project is extremely advanced now ! Almost all functionalities are done. I am just still working on the last one actually, finishing the linux kernel parsor to handle the calculation of kernel dependency (definitely a brand new feature for Linux system actually)

I will be soon in holidays, so I will release a very first official video in English about the project as well to show you exactly what capacity have that software. I will need probably beta tester as well to help me, to report bugs and suggestions as well.

You need to know that tool will be the heart of my future Linux distro I plan to start. Actually there are more than 600 softwares availables.

Just a small screenshot of my software it installed a full plasma desktop environment (5.27.7) under VirtualBox:

4 Likes

I am quite interested in this project, and will try it as soon as possible on VirtualBox.

One more concern:

Considering the indentation and naming convention used in your project (you are using CamelCase), this is inconsistent with the community standards of Crystal(which come from Ruby), it make others hard to contribute/collaborate, you know, only change a char, crystal tool format will mess up all the indendation (as expected).

And, i can saw many code smell from javascript, they are really not same type language, and many unnecessary usage( e.g. redundant return) or misusage (e.g. use + to concat string)

And, there are another community driven project can help a lot for your’s cases.

If you accept refactor use Crystal way someday, please let me know. i am interest in involves.

1 Like

I think I would rather have a configurable crystal tool format than for it to be draconian. snake_case is incredibly hard for me to read, which is why none of my Crystal code uses it, either. At least I can tell Ameba to be quiet about it.

1 Like