ubuntuusers.de

Multi Wine - mehrere Wine Versionen gleichzeitig

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

eiffel56

Avatar von eiffel56

Anmeldungsdatum:
18. April 2006

Beiträge: 336

Hi,

ich benutze öfter Wine um ältere Spiele á la Dungeon Keeper 2 usw. zu spielen. Nur sind die leider relativ häufig stark abhängig von der eingesetzten Wine Version. Entweder bringt ein neues Wine neue Bugs(wie z.b. bei Dungeon Keeper 2) oder bestehende Workarounds funktionieren nicht mehr oder oder oder.
Und da ich nicht immer relativ mühselig hin und her switchen will hab ich mir nen kleines Tool gebastelt. Eigentlich ist das ja etwas von dem ich erwartet hätte das es das schon gibt, aber entweder bin ich zu blöd oder es gibt da wirklich noch nichts. Daher stell ich das mal online 😉.
Habs auf die schnelle schlicht Multi Wine getauft. Das ganze ist in FreeBasic gecodet und auf Ubuntu 7.10 Gutsy Gibbon 32 bit getestet worden. Source steht natürlich offen, unter GPL V2.

1. Installation
Stellt unbedingt sicher das ein evtl. vorhandenes Wine deinstalliert ist!
Kopiert einfach die Binary mwine nach /usr/bin oder irgendwas anderes was in eurem PATH liegt. Ihr könnts auch selber compilieren, dazu braucht ihr FreeBasic von freebasic.net in Version 0.17 oder höher. Ältere könnten auch funktionieren.

2. Benutzung
In Multi Wine(ich nenns ab jetzt einfach mwine) müsst ihr erst mindestens ein Wine reininstallieren. Ich habs da einfach gemacht das man die normalen .debs nehmen kann, die beispielsweise auf http://wine.budgetdedicated.com bereitgestellt werden. Um ein Wine reinzuinstallieren reicht ein

mwine --install pfad-zur-deb name


Name kann dabei was beliebiges sein. Wird halt gebraucht um dann umschalten zu können 😉.
Mwine ist jetzt einsatzbereit. Benutzt einfach 'mwine' anstatt von 'wine' um eure Programme zu starten. Die Parameter werden weitergegeben.
Is natürlich noch langweilig mit nur einer Version ☺. Installiert einfach ne weiter Wine Version mit derselben Methode hinzu, natürlich mit nem anderen Namen. Die zuletzt installierte Version wird immer als default genommen.
Um jetzt zwischen den Versionen zu switchen setzt einfach MWINE_VERSION. Zum Beispiel so:

MWINE_VERSION=wine42 mwine pfad-zur-windows-anwendung


'wine42' steht dabei für den Namen den ihr vergeben habt.
Man kann auch die default Version ändern, das geht mit dem Parameter --set-default.

mwine --set-default wine42

Ich höre schon die Leute aufschreien "Warum zur Hölle will das Ding denn root Rechte?". Das liegt ganz einfach dadrann das mwine ne ganze menge Links in euer Filesystem setzt(in /usr/ genauer gesagt). Das benötigt nunmal root Rechte.
Normalerweise werde die mit 'sudo' eingefordert. Man kann das aber auch auf andere umstellen, zum Beispiel auf gksu von Gnome

mwine --set-sudo gksu


Die Programme in Wine an sich laufen natürlich nicht als root sondern als stinkenormaler User.

Das wars auch schon. Viel Spaß mit dem Programm. Für Kritik und alles steh ich offen. Ausserdem ist es sehr erwünscht wenn ihr mich auf Fehler jeder Art hinweist.
Da ich das Programm nicht zu 100% in jeder Situation testen kann kanns natürlich sein das da mehr oder minder starke Bugs drinn sind die auch euer System zerstören könnten. Wenn das passiert pech gehabt, ich übernehm jedenfalls keine Haftung für irgendwas 😉.

Download: http://eiffel56.mybonsai.at/mwine02-1.tar.gz

hoergen Team-Icon

Ehemalige
Avatar von hoergen

Anmeldungsdatum:
8. Juni 2006

Beiträge: 2313

Wohnort: Berlin

Hi,

das wäre doch eine klasse Erweiterung für das Wiki. Hast Du nicht Lust einen Wikieintrag zu erstellen und den mit diesem hier Wine zu verlinken?

Du könntest damit sicherlich einigen Leuten große Freude bereiten, die zuerst im Wiki nachschauen und nicht den richtigen Suchbegriff im Forum wählen.

Dem hoergen

eiffel56

(Themenstarter)
Avatar von eiffel56

Anmeldungsdatum:
18. April 2006

Beiträge: 336

Hi,

mh ja an sich ne gute Idee find ich. Aber ich hab noch nie son Wiki Artikel geschrieben, höchstens mal was verbessert/hinzugefügt oder so.
Muss ja auch nen bisschen Einsteigerfreundlich sein, ich glaub da werd ich mir einen abbrechen *g*.

Mir sind 2 kleine Fehler aufgefallen. Erstens funktionierte aus irgendeinem Grund sudo nicht mehr-gefixt. Ausserdem hat mwine immer angenommen das sich wine in /usr/ und nicht /usr/local erwartet. Das is jetz dynamisch. War zwar eigentlich wurscht, aber wenn man sich z.b. selbst wine compiliert landet es meist in /usr/local. Jetz kanns auch in /tmp/u/b/u/n/t/u oder wo auch immer landen.

Download: http://eiffel56.mybonsai.at/mwine03-1.tar.gz

hoergen Team-Icon

Ehemalige
Avatar von hoergen

Anmeldungsdatum:
8. Juni 2006

Beiträge: 2313

Wohnort: Berlin

Ahoi,

Kopier Dir doch einfach mal den Quelltext eines anderen Wikiartikels und änder ihn ab. Mit Copy'N'Paste kommste da recht schnell sehr weit.
Wenn die Formulierungen nicht gleich auf Anhieb stimmen, oder Erklärungen nicht vertändlich sind, mach Dir deswegen keinen Kopf. Stell den Artikel einfach im Wikiforum vor und hänge hier im Thread noch eine Info ran, wenn er soweit ist und es werden sicherlich ein paar Leute gute Vorschläge machen können.

Dem hoergen

fluxkompensator

Anmeldungsdatum:
6. April 2006

Beiträge: 48

Wohnort: Berlin

Hi

Also irgendwie will das nicht so recht laufen bei mir, folgendes hab ich gemacht.

 mwine --install wine_0.9.41~winehq0~ubuntu~7.04-1_i386.deb wine41
Creating ~/.mwine...
Installing wine...
max@flux:~$ mwine --version
Multi Wine v0.2. Licensed under GPL V2
Setting symlinks for wine41...sudo: mwine --create-links wine41 max: command not found
Starting wine...
sh: wine: not found

Wo liegt der Fehler ??

In der "~/.mwine/wine41/files" stehen glaub ich die falschen Pfade

/usr/share/wine/fonts/hvgasys.fon
/usr/share/wine/fonts/smae1255.fon
/usr/share/wine/fonts/smae1256.fon
/usr/share/wine/fonts/smae1257.fon
usw...

Im System liegen sie aber hier : ~/.mwine/wine41/usr/share/wine/fonts

Liegt hier der Hund begraben ??? Wäre für Hilfer dankbar

eiffel56

(Themenstarter)
Avatar von eiffel56

Anmeldungsdatum:
18. April 2006

Beiträge: 336

Hi,

ich habe mich beim ersten Release wohl irgendwo vertan weswegen sudo nicht richtig funktionierte. Habe als letztes nurnoch gksu getestet gehabt und wohl irgendwo gebastelt. Sorry.
Das mit den Pfaden ist übrigens richtig so. Sie legen das Ziel fest. Die Quelle kriegt man ja wenn man /home/$USER/.mwine/NAME/ vor setzt. In meinem letzten Post war ein entsprechendes Update \^^.

Und wenn ich grad dabei bin, kann ich eigentlich wieder die nächste Version releasen. Hab die absichtlich erstmal ein wenig zurückgehalten damit ich sie hier praktisch ein wenig testen kann bevor meine schlampige Software euer System zerstört *g*.

Den Download gibts hier, ist Version 0.4: http://eiffel56.mybonsai.at/mwine04-1.tar.gz
Die Änderungen sind nichts revolutionäres. Mwine kennt jetzt auch die Parameter --list und --list-files. Ausserdem hab ich ein paar Überprüfungen eingebaut falls der User etwas dummes versucht(z.b. 2 Wine Versionen mit demselben Namen installieren).
Zusätzlich is nen .deb Paket dabei. Installiert zwar nur eine einzelne Datei, aber es hat den Vorteil das man was zu klicken hat und APT dadrüber bescheid weiß.
Viel Spaß 😉

Nachtrag: Ich würd mich drüber freuen wenn jemand mal berichten kann wie sich das auf x86_64 Systeme verhält(ich habe schlicht keine CPU um das zu testen). Lässt sich die Binary ausführen? Kriegt man 64Bit Code raus wenn man selbst compiliert?

eiffel56

(Themenstarter)
Avatar von eiffel56

Anmeldungsdatum:
18. April 2006

Beiträge: 336

Lang ists her, hier ne neue Version.
Was gibts neues?
- Leerstellen funktionieren in Pfaden
- Benimmt sich eher "unix like"
- Wine Versionen können entfernt werden
- Kann auch mit bzip2 komprimierten data.tar Datein in Debian Paketen umgehen
- Code ein wenig aufgeräumt

Das ganze ist manuell von hier zu bekommen: http://eiffel56.mybonsai.at/mwine-0.5.tar.gz.
Oder alternativ, wie im Wiki Artikel(Baustelle/Multi Wine) beschrieben, aus dem APT Repository.

Viel Spaß, ich hoffe es tut was es soll. Aber wie immer, keine Haftung für irgendwas 😉.

eiffel56

(Themenstarter)
Avatar von eiffel56

Anmeldungsdatum:
18. April 2006

Beiträge: 336

Tada, wieder neue Version.

Nur ein kleiner Bugfix. Hab mich an 2 Stellen verschrieben was zur Folge hatte das Multi Wine in manchen fällen garnichts mehr tut. Damit wären wir bei 0.5.1.
Das Paket lässt sich im Sourcecode aus dem Launchpad Bazaar Branch beziehen:

bzr branch http://bazaar.launchpad.net/~eiffel56-gmail/+junk/mwine


Das Tool ist in FreeBASIC geschrieben, daher benötigt ihr erst den FreeBASIC Compiler in Version 0.17 oder höher von freebasic.net.

Alternativ gibt es ein fertiges .deb Paket auch hier: http://eiffel56.mybonsai.at/depot/mwine_0.5.1-1_i386.deb
Und in meinem privaten APT Repository gibts das auch:

deb http://eiffel56.mybonsai.at/depot/ /


Achtung: Potenziell beschissen gemachte Pakete, kann durchaus was kaputtmachen.

Vorrangig veröffentliche ich neue Versionen nun im Launchpad, wenn die Moderatoren nichts dagegen haben werde ich auch weiterhin hier schreiben was so passiert 😉.

bit7

Anmeldungsdatum:
13. April 2006

Beiträge: 55

Ich habe das Problem, dass Multi Wine den Ordner .mwine in den falschen Benutzer Ordner anlegt.
Mein Benutzername ist z.B. foo und mein Benutzerordner heisst aber z.b. bar. Ich habe wiederum einen Benutzerordner der foo heisst.
Multi Wine legt den Ordner also wie mein Benutzername in den Ordner foo an, was natürlich falsch ist. Richtig wäre wenn .mwine in bar angelegt wird.

Aus diesem Grund habe ich Probleme mwine richtig zu benutzen und zu löschen, da mwine meckert, dass der Ordner bar nicht existiert. Da die wine Installationen in /home/foo/.mwine installiert wurde.
@eiffel56: Könntest du bitte Deinen Script anpassen, dass Multi Wine beim Intallieren nicht in den Ordner wie der Benutzer heisst, sondern in der richtigen Benutzerordner anlegt.

Ich hoffe das ist verständlich erklärt ☺ Ansonsten nochmal fragen.

eiffel56

(Themenstarter)
Avatar von eiffel56

Anmeldungsdatum:
18. April 2006

Beiträge: 336

Heya,

danke für die Rückmeldung 😉.
Ja, das war tatsächlich ein Bug. Ich hab ihn gefixt, das neue Paket ist in meinem Repository. Alternativ findet mans hier: http://yadr.mybonsai.at/repos/
Den Sourcecode kann man sich auch aus dem Launchpad mit

bzr branch http://bazaar.launchpad.net/~eiffel56-gmail/+junk/mwine


runterladen, wie hier: https://code.launchpad.net/~eiffel56-gmail/+junk/mwine beschrieben. Dort findet sich auch das Changelog.
In dieser Version fragt Multi Wine jetzt auch nicht mehr nach root Rechten wenn sie nicht tatsächlich gebraucht werden.

Ich hoffe ich konnte dir helfen,
eiffel56

bit7

Anmeldungsdatum:
13. April 2006

Beiträge: 55

Vielen Dank! Multi Wine ist schon echt klasse.
Ich habe sogar vorhin versucht unter Launchpad Multi Wine zu suchen. Habe aber dort noch nichts gefunden und da kommst Du schon mit dem Fix. Tolle Leistung ☺

Ich hatte auch schon einen Workaround vorher gefunden, damit ich auch mit dem Bug arbeiten konnte. Hatte aber vorhin vergessen, als ich wine 0.9.55 aus deinem Repo installiert habe.
Dann konnte ich mich doch noch daran erinnern. Ich habe einfach einen symbolischen Link auf den /home/foo/.mwine Ordner in /home/bar gemacht. Damit ging es dann auch.

Mit dem Fix ist es natürlich viel besser. Es freut mich, dass das Projekt jetzt auch bei Launchpad zu finden ist.

Gruß
bit7

bit7

Anmeldungsdatum:
13. April 2006

Beiträge: 55

Hallo eifel56.

ich habe heute versucht mit der neuesten Version wine zu installieren und bekomme sh: wine: not found.
Woran kann das liegen.

foo@bar:~/Downloads/wine$ mwine --install wine_0.9.47~winehq0~ubuntu~7.10-1_i386.deb wine47
foo@bar:~/Downloads/wine$ mwine --version
sh: wine: not found

Mit mwine --list wird wine47 angezeigt.

Mit der aktuellen Version wird .mwine in /home/bar/angelegt.

eiffel56

(Themenstarter)
Avatar von eiffel56

Anmeldungsdatum:
18. April 2006

Beiträge: 336

Heya,

tipp mal

hash -r


ein. Wenn sich der Pfad wo sich die Wine Binary befindet ändert merkt das die Bash nich sofort, da diese die Pfade zwischencached.

bit7

Anmeldungsdatum:
13. April 2006

Beiträge: 55

Immer noch sh: wine: not found

eiffel56

(Themenstarter)
Avatar von eiffel56

Anmeldungsdatum:
18. April 2006

Beiträge: 336

Hi,

vielen vielen Dank für deine Rückmeldung. Ich hab mich halb in Gedanken bei der Abfrage, ob root Rechte denn unbedingt gebraucht werden, vertippt. Bzw. hatte ich da nen kleinen Denkfehler(= in der if Abfrage anstatt <>). Is gefixt. Nochmal vielen Dank und sorry für den vielen Ärger!
Der Sourcecode ist im Launchpad, das Paket ist im Repository und lässt sich alternativ von hier beziehen: http://yadr.mybonsai.at/repos/

Wenn Mwine das nich selber fixt(dein Wine is jetzt ein wenig durcheinander), wechsele erstmal zu irgendeiner anderen Wine Version und dann wieder die die du wolltest. Dabei können Fehlermeldungen auftauchen(von wegen Datei nicht gefunden oder existiert bereits), die kannst du einfach ignorieren. Das "repariert" sich selbst.

Ich werd in Zukunft neue Versionen mehr testen, solche dummen Bugs dürfen einfach nicht in ner Version sein die andere Benutzen. Sorry!

Ich hoffe es funktioniert jetzt endlich,
eiffel56

Antworten |