Edubuntu: Wine - εγκατάσταση προγραμμάτων για όλους τους χρήστες

Ξεκίνησε από alkisg, 14 Απρ 2008, 01:02:14 ΠΜ

« προηγούμενο - επόμενο »

alkisg

Προειδοποίηση, ακολουθεί μπακάλικη μέθοδος η οποία πολύ πιθανόν να αλλάξει μόλις μελετήσω καλύτερα το θέμα. Πάντως δούλεψε για 2-3 προγράμματα που το δοκίμασα (π.χ. Microworlds).

Στόχος
Σε ένα εργαστήριο Linux με thin clients, να κάνουμε μια φορά μόνο εγκατάσταση π.χ. το Microworlds μέσα στο Wine και να παίζει για όλους τους χρήστες σε όλα τα PC του εργαστηρίου.

Εισαγωγή
Το Wine είναι ένας εξομοιωτής των Windows ώστε να τρέχουν προγράμματα των Windows εντός του Linux. Όμως, δεν έχει (ακόμα?) υποστήριξη για πολλούς χρήστες, και έτσι κάθε χρήστης του Linux έχει τη δική του εξομοίωση Windows/σκληρού δίσκου κτλ. Έτσι, αν θέλουμε για παράδειγμα να δουλέψουμε με το Microworlds στο εργαστήριο, είτε θα πρέπει να έχουμε έναν μόνο χρήστη "WineUser" και να λέμε στους μαθητές να συνδέονται όλοι με αυτό το username (μπάχαλο!) είτε να κάνουμε ξεχωριστή εγκατάσταση του MicroWorlds για όλους τους χρήστες (κουραστικό! - και τρώει πολύ χώρο στο δίσκο).

Ιδέα
Λογικά οι χρήστες θα θέλουν μόνο να γράφουν κάτω από το φάκελο του profile τους, οπότε αν έχουμε πει στο Wine να κάνει εξομοίωση Windows 2000, αυτό είναι κάτω από το ~/.wine/drive_c/windows/profiles/username.
Επίσης, θα πρέπει να μπορούν να γράφουν στο C:\Windows\Temp, καθώς και στο μητρώο στο κλαδί HKEY_CURRENT_USER.
Όλα τα υπόλοιπα (π.χ. C:\Program Files, HKEY_LOCAL_MACHINE) μπορούν να είναι read only, και έτσι μάλιστα έχουμε ένα σταθερότατο σύστημα που δεν μπορούν να το πειράξουν οι χρήστες.

Υλοποίηση
Έχουμε ένα βασικό χρήστη, ας πούμε teacher, στον οποίο γίνονται όλες οι εγκαταστάσεις των προγραμμάτων Windows.
Εγκαθιστούμε καταρχάς όποια προγράμματα θέλουμε, και στη συνέχεια για κάθε άλλο χρήστη κάνουμε τα εξής (σημείωση: αυτά υποτίθεται γίνονται από το λογαριασμό του χρήστη, αλλιώς χρειάζονται chown):
rm -rf .wine
mkdir .wine
cd .wine
ln -s /home/teacher/.wine/drive_c drive_c
ln -s /home/teacher/.wine/drive_c drive_c
ln -s /home/teacher/.wine/dosdevices dosdevices
ln -s /home/teacher/.wine/system.reg system.reg
cp /home/teacher/.wine/user.reg user.reg

TODO: Μέσα στο user.reg, αλλαγή όλων των "teacher" σε "username". Βέβαια δουλεύει και χωρίς την αλλαγή.
TODO: Επίσης καλό θα ήταν το system.reg να γίνεται copy σε κάθε εκτέλεση του wine αντί για ln -s, και επίσης αυτόματα να αντικαθίσταται το "teacher" σε "username" εντός του system.reg.

Επίσης, από το λογαριασμό του teacher θα πρέπει να γίνουν τα εξής:
cd ~/.wine/drive_c/windows
chmod 777 temp
cd ~/.wine/drive_c/windows/profiles
mkdir username
sudo chown username:group username


TODO: να φτιάξω ένα shell script "addwineuser.sh" που να δέχεται το username και να κάνει αυτόματα όλα τα παραπάνω.
edit: Ή, καλύτερα ακόμα, να αλλαχθεί η μεταβλητή περιβάλλοντος WINELOADER (βλ. man wine) ώστε να τρέχει διάφανα το shell script χωρίς να ασχολείται ο administrator.

TODO: τα προγράμματα των Windows όμως προστίθενται μόνο στο μενού "Εφαρμογές > Wine > Programs" του teacher, και δε φαίνονται στους άλλους χρήστες. Οι χρήστες μπορούν βέβαια να τα τρέξουν αν πάνε π.χ. στο ~/.wine/drive_c/Program Files/LCSI/Microworlds Pro/MWPro.exe, ή να φτιάξουν χειρωνακτικά τις συντομεύσεις, αλλά καλό θα είναι το shell script να τους τις βάζει αυτόματα στα μενού του Gnome ή του KDE.

Sammy Dead

cp /home/administrator/.wine/user.reg user.reg
cp: αδύνατη η εκτέλεση της stat στο αρχείο «/home/administrator/.wine/user.reg»: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος

alkisg

 « Τελευταία τροποποίηση: 15 Απρ 2008, 11:42:53 μμ από alkisg »

==> μην κάνεις νεκρανάσταση! Για να μην το έχω συνεχίσει από το 2008, ε, κάτι δεν προχώρησε... μετά πακετάραμε το Microworlds στο /usr/share και ησυχάσαμε. :)

Για το .wine/user.reg που δεν υπάρχει, υποτίθεται ότι πρώτα έχεις τρέξει το wine (την εφαρμογή που θες) και έτσι έχει δημιουργηθεί. Αλλά δεν έχει νόημα παρακάτω αφού ήταν αρχική σκέψη και όχι ολοκληρωμένο tutorial.

Sammy Dead