Acest tutorial descrie instalarea și rularea Adobe Lightroom CC (varianta cloud, numită uneori „Lightroom Desktop“ - NU Lightroom Classic) pe Linux, folosind Wine 11.8 staging.
Stare confirmată: funcțional, testat cu Wine 11.8 staging și Lightroom CC 9.3.1.
Atenție: rețeta originală a fost testată de autor doar pe o singură distribuție (Pop!_OS). Pachetele de sistem pentru celelalte distribuții din acest tutorial (Debian, Ubuntu, Linux Mint, Fedora, Arch, openSUSE, Alpine, NixOS, Gentoo) sunt adaptate după echivalentele fiecărui manager de pachete, dar Lightroom CC nu a fost verificat efectiv să funcționeze pe toate. Există șanse reale ca pe unele dintre ele (în special Alpine, din cauza musl în loc de glibc, și NixOS, din cauza structurii de fișiere non-standard) să întâmpinați probleme suplimentare față de cele documentate în secțiunea de depanare. Dacă vă loviți de o eroare care nu apare mai jos, verificați mai întâi dacă e legată de particularitățile distribuției voastre înainte să presupuneți că fix-urile din ghid sunt greșite.
Sursa originală a rețetei, cu toate scripturile și fișierele patch-uite: repo-ul lightroom-cc-on-linux.
Ce nu funcționează încă: câteva ferestre de dialog (de exemplu „What's New“) pot bloca programul, plus unele funcții avansate legate de accelerare GPU. Fluxul de bază pentru editare foto merge fără probleme.
mingw-w64 pentru compilarea DLL-urilor stubCombinație testată:
| Componentă | Versiune |
|---|---|
| Wine | 11.8 (Staging) |
| Winetricks | 20240105 |
| DXVK | 2.7.1 |
| Wine Gecko | 2.47.4 |
| WebView2 | 148.0.3967.70 |
| Adobe CC | 6.9.1.1 sau mai nou |
| Lightroom CC | 9.3.1 |
Comenzile diferă în funcție de distribuție. Mai jos sunt acoperite distribuțiile principale ale fiecărei familii - dacă folosiți alta, adaptați după cea mai apropiată din listă.
sudo dpkg --add-architecture i386 sudo apt update sudo apt install -y \ curl wget unzip git xz-utils ca-certificates \ build-essential pkg-config \ mingw-w64 \ winbind cabextract \ mesa-vulkan-drivers libvulkan1 vulkan-tools \ wmctrl imagemagick
Wine 11.8 staging trebuie instalat separat, din depozitul WineHQ (pasul 2). Dacă pachetele Vulkan/Mesa nu se găsesc, verificați că depozitul contrib non-free-firmware e activat în /etc/apt/sources.list.
sudo dpkg --add-architecture i386 sudo apt update sudo apt install -y \ curl wget unzip git xz-utils ca-certificates \ build-essential pkg-config \ mingw-w64 \ winbind cabextract \ mesa-vulkan-drivers libvulkan1 vulkan-tools \ wmctrl imagemagick
Wine 11.8 staging trebuie instalat separat, din depozitul WineHQ (pasul 2).
sudo dpkg --add-architecture i386 sudo apt update sudo apt install -y \ curl wget unzip git xz-utils ca-certificates \ build-essential pkg-config \ mingw-w64 \ winbind cabextract \ mesa-vulkan-drivers libvulkan1 vulkan-tools \ wmctrl imagemagick
Wine 11.8 staging trebuie instalat separat, din depozitul WineHQ (pasul 2).
sudo dnf install -y \ curl wget unzip git xz \ @development-tools \ mingw64-gcc mingw32-gcc \ samba-winbind cabextract \ mesa-vulkan-drivers vulkan-tools \ wmctrl ImageMagick
sudo pacman -S --needed \ curl wget unzip git \ base-devel \ mingw-w64-gcc \ samba cabextract \ vulkan-icd-loader vulkan-tools \ wmctrl imagemagick
Pachetul wine-staging din depozitele oficiale e potrivit dacă versiunea e 11.8 sau mai nouă (verificați cu pacman -Si wine-staging); altfel instalați manual din sursă sau din AUR (pasul 2).
sudo zypper install -y -t pattern devel_basis sudo zypper install -y \ curl wget unzip git-core cabextract \ mingw64-cross-gcc mingw32-cross-gcc \ Mesa-vulkan-drivers libvulkan1 vulkan-tools \ wmctrl ImageMagick
Pentru Wine staging la zi, activați depozitul Packman - versiunea din depozitul standard openSUSE e adesea mai veche decât 11.8 (pasul 2).
sudo apk update sudo apk add \ curl wget unzip git build-base pkgconf \ mingw-w64-gcc \ samba-client cabextract \ mesa-vulkan-generic vulkan-loader vulkan-tools \ wmctrl imagemagick
Atenție: Alpine folosește musl în loc de glibc, iar binarele Adobe (compilate pentru glibc) au nevoie de un strat de compatibilitate precum gcompat pentru a rula sub Wine. Pachetul wine din depozitele Alpine poate fi mai vechi decât 11.8 - verificați cu apk info wine și, dacă e nevoie, compilați din sursă (pasul 2).
Pe NixOS pachetele nu se instalează individual cu un manager clasic. Cea mai curată variantă e printr-un shell temporar:
nix-shell -p curl wget unzip git gnumake gcc pkg-config \ wineWowPackages.staging winetricks \ cabextract samba \ vulkan-loader vulkan-tools mesa \ wmctrl imagemagick \ pkgsCross.mingwW64.buildPackages.gcc
Pentru o instalare permanentă, adăugați pachetele echivalente în environment.systemPackages din /etc/nixos/configuration.nix și rulați sudo nixos-rebuild switch. wineWowPackages.staging aduce deja Wine staging, deci pasul 2 din acest ghid poate fi sărit pe NixOS.
sudo emerge --sync sudo emerge --ask \ net-misc/curl net-misc/wget app-arch/unzip dev-vcs/git \ app-arch/cabextract net-fs/samba \ media-libs/vulkan-loader media-libs/vulkan-tools \ x11-misc/wmctrl media-gfx/imagemagick
Compilatorul cross mingw-w64 nu e în arborele principal ca pachet simplu - de obicei se folosește un overlay (ex. crossdev) pentru toolchain-ul x86_64-w64-mingw32. Pentru Wine staging, folosiți app-emulation/wine-staging din portage, cu USE flag-urile vulkan și staging activate în /etc/portage/package.use (pasul 2).
Dacă distribuția nu are winetricks în versiune suficient de nouă (≥ 20240105), luați varianta cea mai recentă direct:
curl -L https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks \ -o ~/.local/bin/winetricks chmod +x ~/.local/bin/winetricks
Urmați instrucțiunile per-distribuție de pe pagina de descărcare WineHQ. Pachetele căutate: winehq-staging (Ubuntu/Debian) sau wine-staging/wine-staging-common (Fedora), versiunea 11.8 sau mai nouă.
Verificare:
wine --version # rezultat așteptat: wine-11.8 (Staging) (sau mai nou)
Un prefix Wine e un disc C: independent, cu propriul registru - păstrați-l separat de ~/.wine ca să nu afecteze alte programe Wine deja instalate.
git clone https://github.com/sander110419/lightroom-cc-on-linux.git cd lightroom-cc-on-linux ./scripts/setup.sh
Scriptul face automat, în mod repetabil:
wineprefix/ (arhitectură win64, Windows 10)corefonts vcrun2019 ucrtbase2019 msxml6 gdiplus dotnet48 atmlib fontsmooth=rgb dxvkwineprefix/dxvk.conf cu opțiunea dxgi.enableDummyCompositionSwapchain = Truesystem32/
Durează circa 30 de minute la prima rulare, mai ales din cauza pachetului dotnet48 și a fonturilor. Rerularea e sigură - fiecare pas detectează dacă a fost deja făcut.
Notă pentru utilizatorii Citrix Workspace: dacă /etc/ld.so.preload conține o bibliotecă de tip libAppProtection.so, Wine va afișa mii de linii cosmetice de tip „could not inject 32-bit lib into 64-bit process“ la pornire. Nu afectează funcționalitatea. Verificați cu:
cat /etc/ld.so.preload 2>/dev/null
Adobe cere autentificare pentru descărcare, deci pasul e manual:
ACCCx6_9_1_1.zip (cifrele reprezintă versiunea; una mai nouă e în regulă, dar nu folosiți nimic mai vechi de 6.9.1.x)installers/ din repo:mv ~/Downloads/ACCCx*.zip installers/
Important: nu folosiți fișierul vechi CreativeCloudSet-Up.exe de 800 KB - datează din 2018, punctele lui de conectare sunt învechite și eșuează cu eroarea 72. Pachetul offline ZIP e cel corect.
Descărcați și Microsoft Edge WebView2:
mkdir -p installers curl -L -o installers/MicrosoftEdgeWebview2Setup.exe \ https://go.microsoft.com/fwlink/p/?LinkId=2124703
./scripts/install-cc.sh
Scriptul dezarhivează pachetul, instalează WebView2 în prefix și pornește instalatorul Adobe. Veți vedea ecranul de autentificare Creative Cloud - conectați-vă cu contul Adobe. Programul CC va încărca apoi catalogul de aplicații.
wineprefix/dxvk.conf există și conține dxgi.enableDummyCompositionSwapchain = True, și că variabila DXVK_CONFIG_FILE indică spre acest fișier la lansare.AdobeGrowthSDK.dll nu a fost dezactivat. Vezi pasul 6.1 mai jos.
Majoritatea corecturilor sunt aplicate automat de setup.sh, dar două trebuie aplicate după instalarea Creative Cloud, pentru că fișierele vizate nu există înainte de asta.
Biblioteca Adobe de A/B testing apelează o funcție (SetThreadpoolTimerEx) pe care Wine 11.8 nu o implementează, ceea ce blochează procesul. Există două copii pe disc - una pentru CC, una pentru fiecare program Adobe instalat, inclusiv Lightroom.
cd wineprefix/drive_c # Copia din Creative Cloud for f in \ "Program Files/Common Files/Adobe/Adobe Desktop Common/GrowthSDK/AdobeGrowthSDK.dll" \ "Program Files/Adobe/Adobe Creative Cloud Experience/js/node_modules/@growthsdk/growthsdk/public/binaries/win.x64/Release/AdobeGrowthSDK.dll" \ "Program Files/Adobe/Adobe Creative Cloud Experience/js/node_modules/@growthsdk/growthsdk/public/binaries/win.x64/Release/growthsdk.node"; do [ -f "$f" ] && mv "$f" "$f.disabled" done # Copia din Lightroom CC (doar după instalarea LR, pasul 7) [ -f "Program Files/Adobe/Adobe Lightroom CC/AdobeGrowthSDK.dll" ] \ && mv "Program Files/Adobe/Adobe Lightroom CC/AdobeGrowthSDK.dll" \ "Program Files/Adobe/Adobe Lightroom CC/AdobeGrowthSDK.dll.disabled"
Lightroom importă DLL-uri cu nume scrise cu litere mici (de exemplu agkernel.dll), dar Adobe livrează fișierele cu majuscule (AgKernel.dll). Pe Windows nu contează, dar pe Linux sistemul de fișiere e case-sensitive, deci importul eșuează.
cd "wineprefix/drive_c/Program Files/Adobe/Adobe Lightroom CC" for f in *.dll *.exe; do lower=$(echo "$f" | tr '[:upper:]' '[:lower:]') [ "$f" != "$lower" ] && [ ! -e "$lower" ] && ln -s "$f" "$lower" done
Scriptul scripts/install-lightroom.sh face acest pas automat.
Trei DLL-uri mici sunt necesare pentru că Wine 11.8 nu le livrează, dar Lightroom le importă static: NDFAPI.DLL, wkscli.dll și ext-ms-win-uiacore-l1-1-2.dll. Sunt copiate automat de scriptul de instalare, fie din binarele precompilate din repo, fie recompilate local cu scripts/build-stubs.sh.
Lightroom cere la pornire efectul Direct2D CLSID_D2D1ColorManagement, pe care Wine 11.8 nu îl include. Fără el, apare eroarea:
Error initializing Lightroom CreateD2DDeviceResources failed. HResult: 0x88990028
Rezolvare, folosind binarul precompilat din repo:
cp stubs/binaries/d2d1-patched.dll wineprefix/drive_c/windows/system32/d2d1.dll WINEDLLOVERRIDES="d2d1=n" wine reg ADD \ "HKCU\Software\Wine\DllOverrides" /v d2d1 /d "native" /f
Alternativ, DLL-ul poate fi recompilat din sursele Wine - detalii în GUIDE.md din repo, secțiunea 6.4.
Unealta Remove/Heal are nevoie de funcția MFCreateSampleCopierMFT din mfplat.dll, pe care Wine 11.8 nu o exportă. Fără fix, folosirea uneltei blochează procesul.
cp stubs/binaries/mfplat-patched.dll \ wineprefix/drive_c/windows/system32/mfplat.dll WINEDLLOVERRIDES="mfplat=n" wine reg ADD \ "HKCU\Software\Wine\DllOverrides" /v mfplat /d "native" /f
Important: Adobe livrează propria copie a mfplat.dll direct în directorul de instalare al Lightroom, iar ordinea de căutare Windows o preferă pe aceasta față de cea din system32/. Fără înlocuirea și a acestei copii, fix-ul de mai sus nu are niciun efect:
cp "wineprefix/drive_c/Program Files/Adobe/Adobe Lightroom CC/mfplat.dll" \ "wineprefix/drive_c/Program Files/Adobe/Adobe Lightroom CC/mfplat-ADOBE-ORIGINAL.dll" cp stubs/binaries/mfplat-patched.dll \ "wineprefix/drive_c/Program Files/Adobe/Adobe Lightroom CC/mfplat.dll"
Verificare că ambele copii sunt identice:
md5sum wineprefix/drive_c/windows/system32/mfplat.dll \ "wineprefix/drive_c/Program Files/Adobe/Adobe Lightroom CC/mfplat.dll"
Regulă generală valabilă și pentru alte programe Adobe pe Wine: când o corectură nu pare să aibă efect, verificați dacă programul livrează propria copie a acelui DLL în directorul de instalare.
./scripts/install-cc.sh)wineprefix/drive_c/Program Files/Adobe/Adobe Lightroom CC/Poate apărea un mesaj despre KANC (Adobe Native Client) cu eroare HTTP 302 - e cosmetic, Lightroom se instalează corect oricum.
Nu apăsați „Open“ din interiorul CC după instalare, se poate bloca. Închideți CC și folosiți lansatorul dedicat de la pasul 8.
Înainte de prima rulare, completați și partea a doua din 6.1 (dezactivarea copiei Lightroom a AdobeGrowthSDK.dll) plus 6.2 (symlink-urile):
./scripts/install-lightroom.sh
./scripts/run-lightroom.sh
Sau direct:
cd /calea/catre/lightroom-cc-on-linux LD_PRELOAD= \ DXVK_CONFIG_FILE=$PWD/wineprefix/dxvk.conf \ WINEPREFIX=$PWD/wineprefix WINEARCH=win64 \ wine "C:\\Program Files\\Adobe\\Adobe Lightroom CC\\lightroom.exe"
Comportament așteptat: apare ecranul de încărcare Lightroom, câteva linii cosmetice de eroare în stderr legate de anumite CLSID-uri (fără impact), apoi biblioteca de fotografii sincronizată din cloud. Click pe o fotografie și apoi pe Edit pentru a deschide panoul complet de editare.
Pentru lansator în meniul aplicațiilor:
[Desktop Entry] Name=Lightroom CC (Wine) Exec=/calea/catre/lightroom-cc-on-linux/scripts/run-lightroom.sh Icon=/calea/catre/lightroom-cc-on-linux/screenshots/lightroom-edit-mode.png Type=Application Categories=Graphics;Photography;
| Simptom | Cauză și rezolvare |
|---|---|
| Fereastra CC apare albă | dxvk.conf lipsă sau DXVK_CONFIG_FILE greșit setat - vezi pasul 5 |
| Eroare 72 la instalarea CC | Se folosește instalatorul vechi mini-bootstrap - folosiți pachetul ZIP offline (pasul 4) |
| „Sorry, an error occurred“ după autentificare | AdobeGrowthSDK.dll încă activ - verificați cu find wineprefix -name AdobeGrowthSDK.dll -not -name *.disabled |
| CC blocat pe „Initializing Creative Cloud“ | Există override-uri Wine care dezactivează CCXProcess.exe, CCLibrary.exe sau CoreSync.exe - ștergeți-le din registru |
| KANC eșuează cu HTTP 302 | Cosmetic, ignorați |
| „CreateD2DDeviceResources failed“ | Lipsă d2d1.dll patch-uit - vezi pasul 6.4 |
| „module:import_dll … not found“ pe un DLL Adobe | Problemă de case-sensitivity - reaplicați symlink-urile din pasul 6.2 |
| „Unimplemented function KERNEL32.dll.SetThreadpoolTimerEx“ | Una din cele trei copii AdobeGrowthSDK.dll nu a fost dezactivată |
| Panoul Edit apare gol | Efectul ColorManagement nu e găsit în d2d1.dll - verificați md5-ul binarului patch-uit |
| Blocare la folosirea uneltei Remove/Heal | Lipsă mfplat.dll patch-uit, în ambele locații - vezi pasul 6.5 |
| Fereastra „What's New“ se randează greșit sau nu se închide | Același fix ca la Remove/Heal - pasul 6.5 |
Rețeta completă, scripturile și fișierele binare patch-uite sunt publicate de sander110419 în repo-ul lightroom-cc-on-linux, licențiate MIT (scripturi și stub-uri) respectiv LGPL-2.1+ pentru derivatele din Wine. Conform README-ului, cea mai mare parte a muncii de depanare, scriere a patch-urilor și verificare a fost realizată autonom de Claude Opus 4.7 prin Claude Code, pe baza obiectivului stabilit de autorul uman al proiectului.