Jump to content

# Wine package guidelines (Magyar)

From ArchWiki
Fordítás állapota: Ez a cikk az angol Wine package guidelines című cikk magyar nyelvre lefordított változata. Utolsó fordítás dátuma: 2025.12.28. Amennyiben a lefordítás időpontja óta az angol nyelvű cikkben történtek újabb módosítások, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.

Sok Windows szoftver még mindig hasznos lehet Linux alatt, ezért érdemes lehet szoftvercsomagot készíteni hozzájuk. A két operációs rendszer közötti különbségek miatt ez a feladat kissé összetett. Ebben az útmutatóban a Win32 bináris szoftverekről lesz szó, mivel azok a projektek, amelyek forráskódja elérhető, általában át vannak portolva Linuxra.

## Dolgok, amiket feltétlenül ellenőrizni kell

- Licenc: Engedélyezi-e a licenc, hogy a szoftvert újracsomagolják?
- Telepítő: Lehetséges-e a programot csendesen telepíteni? Még jobb kérdés, hogy létezik-e telepítő nélküli verzió?
- Hordozhatóság és tisztaság: Hordozható-e a szoftver? Tiszta-e?

Itt azt értjük hordozhatónak (portable), ha egy szoftver soha nem ír a rendszerleíró adatbázisba vagy a saját könyvtárán kívülre. Tisztának pedig azt értjük, hogy ha soha nem ír a saját könyvtárába, de a beállításait elmentheti a felhasználói könyvtárba. Egy szoftver lehet mindkettő (például soha nem ír beállításokat), vagy egyik sem (például ír a saját könyvtárába, máshová is ír, valamint a rendszerleíró adatbázisba is ír...).

### Licenc

Általában a licencek egy szövegfájlban találhatóak a telepítési könyvtárban. Ha Ön nem találja, akkor próbálja követni a képernyőn megjelenő lépéseket a telepítés során. Ha semmi nincs említve az újracsomagolással kapcsolatban, akkor folytassa az újracsomagolás műveletét. A szerzőt nem érdekli. Ellenkező esetben a licenc általában nem engedi a fájlok eltávolítását, vagy egyáltalán nem engedi az újracsomagolást. Az első esetben csak ügyeljen arra, hogy a makepkg folyamat ne veszítsen el egyetlen fájlt sem. A felesleges fájlokat (például eltávolítókat) törölheti a `post_install` fázisban. A második esetben az egész telepítési folyamatot a `post_install` fázisban kell elvégezni. A `build` fázis kizárólag a telepítési fájlok másolására szolgál.

### Telepítő

Sokkal könnyebb tömörített fájlokkal, például `.zip` fájlokkal dolgozni, mint ha a Windows telepítőfájlokkal dolgoznánk. Ha Önnek nincs más választása, akkor mivel a szerző ragaszkodik ahhoz, hogy a szoftvert telepítővel terjessze, keressen rá az interneten arra, hogy lehetséges-e a szoftvert csendesen telepíteni. Az MSFN általában jó hely a kereséshez. Ha nem talál megoldást, akkor próbálja meg megnyitni a telepítőt különböző kicsomagoló segédszoftverekkel. Működhet.

### Hordozhatóság és tisztaság

Egy hordozható szoftvernek nincs szüksége saját Wine emulált fájlrendszerre, ezért ellenőrizze a Portable Freeware oldalon, hogy az Ön által csomagolt szoftver hordozható-e.

## Röviden az útmutató

A Windows-szoftver csomagolásának lényege az, hogy a szoftver fájljait puszta adatként használjuk, amelyet a Wine értelmez, hasonlóan ahhoz, ahogyan a JVM (Java virtuális gép) kezeli a Java bájtkódot.

A szoftvert tehát a `/usr/share/"$pkgname"` könyvtárba fogjuk telepíteni, és a szoftver minden szükséges fájlt a `"$HOME"/."$pkgname"` könyvtárban fog írni. Mindezt egy kis szkriptfájl készíti elő, amely a `/usr/bin/"$pkgname"` helyen lesz elmentve. Ez a szkriptfájl létrehozza a könyvtárat, ha szükséges, akkor előkészíti a könyvtárat, majd végül elindítja a szoftvert.

A következő részekben minden egyes lépésről beszélni fogunk.

Így minden felhasználónak saját beállításai lesznek, és a döntései nem zavarják a többi felhasználót.

### Telepítés

Ha a szoftvernek nincs telepítője, akkor a telepítés pusztán egy fájl kibontásából áll. Csomagolja ki a szoftvert a `"$pkgdir"/usr/share/$pkgname` könyvtárba, ügyelve arra, hogy a jogosultságok helyesek legyenek. Ezek a parancsok megteszik a leírtakat:

    $ find "$pkgdir"/usr/share -type f -exec chmod 644 "{}" \;
    $ find "$pkgdir"/usr/share -type d -exec chmod 755 "{}" \;

Ha a szoftver nem telepíthető egyszerű módon, akkor Önnek létre kell hoznia egy Wine környezetet:

    $ install -m755 -d "$srcdir"/tmp "$srcdir"/tmp/env "$srcdir"/tmp/local
    $ export WINEPREFIX="$srcdir"/tmp/env
    $ export XDG_DATA_HOME="$srcdir"/tmp/local
    $ wine "$srcdir"/installer.exe /silentoptions

Még nem tárgyaltuk a hordozhatóságot, de ha az Ön szoftverének nincs szüksége a módosított rendszerleíró kulcsokra, akkor egyszerűen átmásolhatja a könyvtárat innen:

    "$srcdir"/tmp/env/drive_c/Program\ Files/szoftverneve

Ellenkező esetben Önnek az összes rendszerleíró fájlt is át kell másolnia, valamint azokat a fájlokat, amelyeket a szoftver telepített. A `"$srcdir"/tmp/local` könyvtár menüikonokat és asztali fájlokat fog tartalmazni, amelyeket Önnek érdemes a csomagba belemásolnia. Ha nincs mód a szoftver csendes telepítésére... Esetleg Ön elkészíthet egy `.tar.gz` fájlt, és azt feltöltheti valahová. Ha semmilyen automatizálás nem lehetséges, akkor kényszerítse a felhasználót a telepítő követésére, és remélje, hogy nem rontják el a telepítést. Írjon ellenőrzéseket, mielőtt vakon másolna egy könyvtárat, amely esetleg nem létezik (például a felhasználó megnyomta a "Mégse" gombot).

### Az /usr/bin szkriptfájl

Ez a parancsfájl előkészíti a beállítások könyvtárát, és elindítja a szoftvert. Ha az Ön szoftvere hordozható, akkor a szkriptfájl így fog kinézni:

    #!/bin/bash
    unset WINEPREFIX
    if [ ! -d "$HOME"/.programname ] ; then
       mkdir -p "$HOME"/.programname
       #prepare the environment here
    fi
    WINEDEBUG=-all wine "$HOME"/.programname/programname "$@"

Ha tiszta, akkor így fog kinézni:

    #!/bin/bash
    export WINEPREFIX="$HOME"/.programname/wine
    if [ ! -d "$HOME"/.programname ] ; then
       mkdir -p "$HOME"/.programname/wine
       wineboot -u
       #copy the registry file if needed
    fi
    WINEDEBUG=-all wine /usr/share/programname "$@"

Amint látható, a második esetben nincs környezet-előkészítés. Valójában egy tiszta alkalmazás indul közvetlenül a `/usr/share` könyvtárból, mivel nem lesz szüksége arra, hogy a saját könyvtárába beleírjon, így az alkalmazás beállításai az emulált fájlrendszerben fognak tárolódni.

Ha az alkalmazás se nem tiszta, se nem hordozható, akkor a kettő ötletet kombinálni kell.

Ha az alkalmazás egyáltalán nem ír beállításokat, akkor Ön hagyja ki a `if` részt, és indítsa el a `/usr/share` résztől.

A környezet előkészítésének feladata alkalmazások között nagymértékben eltérhet, de kövesse az alábbi ökölszabályokat: Ha a szoftvernek:

- Kizárólag olvasnia kell egy fájlt, akkor hozzon létre szimbolikus linket.
- Írnia kell egy fájlba, akkor másolja azt.
- Nem használ fájlt, akkor hagyja figyelmen kívül.

Természetesen a minimum egyszerűen az `WINEDEBUG=-all wine /usr/share/programname "$@"` elindítása.

Általában a környezetet szimbolikus linkek létrehozásával alakítják ki a `"$HOME"/.szoftverneve` könyvtár és a `/usr/share/szoftverneve` fájlok között. Mivel azonban egyes Windows szoftverek nagyon kényesek az elérési útjaikra, előfordulhat, hogy Önnek közvetlenül a `"$HOME"/.szoftverneve/wine/drive_c/Program\ Files/szoftverneve` könyvtárban kell szimbolikus linket létrehoznia.

Természetesen ezek kizárólag ötletek a Win32 alkalmazások Linux környezetbe való integrálásához, ne feledje el használni az Ön emberi intelligenciáját és a rátermettségét.

Példaként a μTorrent alapértelmezés szerint egy tiszta alkalmazás, de egy egyszerű lépéssel hordozhatóként is használható. Mivel egyetlen fájlból áll, és meglehetősen kicsi, a saját wine környezetének létrehozása (kb. 5 MB) valószínűleg túlzás lenne. Jobb megoldás a végrehajtható fájl szimbolikus linkelése, valamint az üres settings.dat létrehozása annak érdekében, hogy hordozható módon használhassa a `$HOME/.utorrent` könyvtárban. További előny, hogy a `.utorrent` könyvtár megnyitásakor a felhasználó láthatja a letöltött `.torrent` fájlok másolatát.

### UnionFsFuse

Ön használhatja a UnionFsFuse szoftvert, amely elérhető az unionfs-fuseAUR szoftvercsomag formájában. A UnionFsFuse lehetővé teszi, hogy az alapkönyvtárat a `/usr/share` alatt tartsa, és szinte automatikusan a fájlok másolatát, amelyeket az alkalmazásnak írnia kell, az `$HOME/.programname` könyvtárba helyezze.

A UnionFsFuse használata további szoftvercsomag-függőséget jelent, és szüksége van a fuse modulra, amelyet nem minden felhasználó tölt be. Ennek ellenére hasznos lehet, ha az alkalmazásnak sok szimbolikus linkre van szüksége, vagy ha nem teljesen világos, hogy pontosan mit kell írnia. Ügyeljen rá, hogy a UnionFs fájlrendszert helyesen csatolja fel és válassza le.

## Példa

A Wine alkalmazástól függő AUR szoftvercsomagok példáinak a megtekintéséért tekintse meg a https://aur.archlinux.org/rpc/v5/search/wine?by=depends linket.

This article or section is out of date.

Reason: Másik példát kell ide írni, mert az AUR szoftvercsomag tárolóban nincs emule szoftvercsomag. (Discuss in Talk:Wine package guidelines (Magyar))

Szoftvercsomagot fogunk készíteni az eMule számára. A Portable Freeware szerint az eMule nem teljesen hordozható, mivel néhány (haszontalan) kulcsot ír a rendszerleíró adatbázisba.

Másrészt ez sem tiszta megoldás, mivel a szoftver a beállításfájljait írja, és a letöltéseit az telepítési könyvtárába helyezi bele.

Szerencsére elérhető egy telepítés nélküli verzió.

Készítsük el a saját PKGBUILD fájlunkat. Az egyetlen szoftvercsomag-függőség a wine nevű szoftvercsomag. A `md5sums` hozzáadása szükséges.

    # Maintainer: You <youremail>
    pkgname=emule
    pkgver=0.49b
    pkgrel=1
    pkgdesc="One of the biggest and most reliable peer-to-peer file sharing
    clients around the world."
    arch=('x86_64')
    url="https://www.emule-project.net"
    license=('GPL')
    depends=()
    depends=(wine)
    makedepends=(unzip)
    source=(emule https://sourceforge.net/projects/emule/files/eMule/$pkgver/eMule$pkgver.zip)
    noextract=()
    options=(!strip)

    build() {
      rm -f src/eMule"$pkgver"/license* #It is GPL

      install -d -m755 pkg/usr/share/emule
      cp -ra src/eMule"$pkgver"/* pkg/usr/share/emule
      find pkg/usr/share/emule -type d -exec chmod 755 "{}" \;
      find pkg/usr/share/emule -type f -exec chmod 644 "{}" \;

      install -d -m755 pkg/usr/bin
      install -m755 emule pkg/usr/bin
    }

Most elkészítjük az emule fájlunkat, amely a `build` szerint a `/usr/bin` könyvtárba lesz másolva és végrehajthatóvá lesz téve.

    #!/bin/bash
    export WINEARCH=win32 WINEPREFIX="$HOME/.emule/wine"

    if [ ! -d "$HOME"/.emule ] ; then
      mkdir -p "$HOME"/.emule/wine || exit 1
      #Each user will have its config, we copy the default file since emule
      #needs to write here.
      cp -r /usr/share/emule/config "$HOME"/.emule || exit 1
      #We symlink the files emule needs to read to work
      ln -s /usr/share/emule/emule.exe "$HOME"/.emule/emule || exit 1
      ln -s -T /usr/share/emule/lang "$HOME"/.emule/lang || exit 1
      ln -s -T /usr/share/emule/webserver "$HOME"/.emule/webserver || exit 1
    fi

    wine "$HOME"/.emule/emule "$@"

Ha Ön pontosabb akar lenni, akkor adhat egy üzenetet a `.install` fájlba, amelyben tájékoztatja a felhasználót, hogy tiltsa le a keresési előzményeket, mivel a wine összezavarja azt a menüt. Ön akár egy alapértelmezett beállításfájlt is biztosíthat a legjobb beállításokkal. Ennyi... Futtassa a `$ makepkg` parancsot, ellenőrizze a szoftvercsomag könyvtárát a biztonság kedvéért, majd telepítse azt.

## Gecko és Mono

Hacsak Ön nem tudja biztosan, hogy a szoftver böngészőt vagy .NET futtatókörnyezetet igényel (wine-gecko és wine-mono szoftvercsomagok), akkor az alapértelmezett wine telepítés során megjelenő Gecko/Mono felugró ablakok nem kívánatosak.

A HTML megjelenítés, a bájtkód támogatás és a párbeszédablakok letiltásához egy dll felülbírálás (dlloverride) használatára van szükség a szkriptfájlban. A Gecko számára:

    export WINEDLLOVERRIDES="mshtml="

A Mono számára:

    export WINEDLLOVERRIDES="mscoree="

Mindkettőjük számára:

    export WINEDLLOVERRIDES="mscoree,mshtml="

Le is tilthatja azokat a `winecfg` segítségével: Egyszerűen állítsa az mscoree/mshtml értékét Disable -re.

Categories:

- Arch package guidelines (Magyar)
- Emulation (Magyar)

Hidden category:

- Pages or sections flagged with Template:Out of date

Wine package guidelines (Magyar)
Add topic