Wine package guidelines (Magyar)

Fordítás állapota:
Ez az oldal az angol
Wine package guidelines
című oldal 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ű oldalon történtek újabb
módosítások
, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.
Arch package guidelines (Magyar)
32-bit
–
CLR
–
CMake
–
Cross
–
DKMS
–
Eclipse
–
Electron
–
Font
–
Free Pascal
–
GNOME
–
Go
–
Haskell
–
Java
–
KDE
–
Kernelmodulok
–
Lisp
–
Meson
–
MinGW
–
Node.js
–
Nonfree
–
OCaml
–
Perl
–
PHP
–
Python
–
R
–
Ruby
–
Rust
-
Biztonság
–
Shell
–
VCS
–
Web
–
Wine
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-fuse
AUR
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.