Installing a linux deb file with app inventor

I'm trying to make an application like an app store where you can browse linux .deb applications and install them, with MIT app inventor. The app downloads the deb file, however the user has to manually install it. I would like to make a functional install button once an app is downloaded. Is it possible to make an extension with this functionality?

Where are users installing their deb files to ?

They will install deb files to the chromebook which is running the appllication.

I'm not entirely sure this is possible (although I'm happy to be proven wrong). The challenge as I understand it is that the Android environment on the Chromebook runs in a completely separate container to the Linux for Chrome runtime, which is where a user would interface with Linux (assuming that they've even turned this feature on). Since these functionalities live in different sandboxes I'm not sure they can interact.

I'm pretty sure to install a deb, we can first extract it, and then copy the necessary files to the correct directories. If app inventor can read and write files to disk, I don't see why we can't install debs or at least extract the deb into another location and then run the extracted app.

Most debs tend to reference paths that are readable/writeable by root, and App Inventor certainly won't have that privilege out of the box.

And what if one of the debs requires a parameter that needs user input.

Your idea, whilst interesting, is fraught with difficulties. The best you could do, perhpas, is write a bash script that will commence the install of any debs in a particular file location (with a check to not reinstall any installed debs). But the bash script would need to be called from a linux terminal, I agree with @ewpatton, it is unlikely that the ai2 app will be able to interact with that...

There is an extension called KIO4_Terminal that can run bash
see Using LINUX commands in App Inventor. Extension

This extension runs bash on the linux in the android "device" (if implemented), not the ChromeOS linux deployment, as far as I am aware, although it might be a shared resource ? This is unlikely because you can install apps without enabling linux on the chromebook.

I tried some commands, and the extension seems to work on chromebook..

So after I extract the application to a directory, how do I add a button to run the application itself?

You may be able to write a script that can do that

OK, but does it give you access to the chromebook linux subsystem ?

What do you mean?

Exactly that. To be able to install a deb on the ChromeOS Linux subsystem, you need access to that system so that you can run commands.....

I had a look, and could only access the linux subsytem in the "android device"....

I can have the application use the extracted deb instead.
So after I have the app in a custom location, how do I run it within app inventor?

Give an example of a deb you want to run inside App Inventor?

The "linux" system on your Chromebook and the "linux" on your phone are two completely separate systems. What you have seen until now is the "linux" on your phone with the help of the extension.

Why do you think you need to make an Android app that should run on a ChromeBook? Deb files are only used in debian based systems. Most of the time they have there own software manager to install packages.

You try to combine two different things on your chromebook. 1 run android apps, 2 run linux. Both are not default as far as I know. The user of your app would have to have both linux and android on his chromebook enabled.

I think you should make your own software manager using something like Gambas.

I only have access to app inventor at the moment.

Gambas is also open source so free to use.

It is also important to note that .deb files are for Debian style distributions of Linux and are installed with the dpkg utility. You'd have to check to see if the system even has a utility like dpkg before you could proceed. Most Android installations are not Debian based so I'm not sure that you'd make much forward progress in this regard.