0

I´m sorry if this is not the right place to ask this... I´m trying to create some kind of server where I wan't to store all the software that is used in my school organized by the different classrooms so that when I´m preparing a new computer I can find the correct group of software to copy. The problem is that multiple applications exist in different classes so I have to create multiple copies of the same software in each class folder, using more and more space.

First I thought in creating a website using PHP, Javascript because it´s easy to store all the files in one place and create different pages to each class where I could download the software but I have little experience in Web development so I still have to work on that.

The other solution was with a FTP server but I don´t know if it´s possible to create some kind of virtual folders where I could see only the files of each class but when I downloaded the files the real storage place was one single folder.

The idea is having a easy way of constantly updating the software without having to change every single class folder.

Tim
  • 32,861
  • 27
  • 118
  • 178

2 Answers2

1

Since you only will install the software once, even you have different classes you use them in/for i would put all the .debfiles in one single folder so when you download them from ftp/server on a new install you only need to do:

dpkg -i /path-to-the-downloaded-files/*.deb

For having them seperated for each class you could create a folder structure which contains .desktop files for each application on your desktop.

This folder structure you could then pack with a compression tool (tar, 7z, etc.) and put this on the server aswell which makes restoring that pretty easy. More information about .desktop files can be found here.

Videonauth
  • 33,355
  • 17
  • 105
  • 120
0

You could also use symbolic links. Start by putting all the applications into one directory; then, in each class folder, instead of placing the real applications, create a link to the relevant application file. You now only store the file once, yet can access it from many places.

If you upgrade applications frequently, you could take this one step further: instead of linking to the application, link to a "pointer" or "stub", and then link that to the application. That means you'd have something like:

Class A

---AppA (links to A)

---AppB (links to B)

---AppC (links to C)

Class B

---AppA (links to A)

---AppD (links to D)

Class C

---AppA (links to A)

---AppC (links to C)

---AppD (links to D)

Application directory

---A (links to A.version)

---B (links to B.version)

---C (links to C.version)

---D (links to D.version)

Now, when you upgrade a package, you don't need to re-make the links for each class, as they don't change. Instead, you'd change the links in the Application Directory to point to the new version instead, and that's it.