SafeSoft FME är långt ifrån OpenSource. Programmet bygger delvis på en del öppen källkod, men hanterar framför allt en hel del öppna format. Dessutom så kan programmet hantera väldigt många kommersiella format och bearbeta data samt konvertera mellan alla dessa på ett utmärkt sätt. Detta gör att trots en ganska rejäl prislapp för licensen, så kan det vara värt att kika lite på programmet om man har datahanteringsbehov som är svåra att uppfylla på andra sätt.
Safe FME (Feature Manipulation Engine) är en så kallad Spatial ETL (Extract, Transform, Load) mjukvara som är fokuserad på bearbetning och konvertering av rumsliga data.
Anledningen till att jag testar FME här, är att Safe till skillnad från många andra kommersiella bolag faktiskt har en version anpassad för Linux.
Den version som ligger närmast den version av Linux jag använder är Ubuntu 20.04. Men eftersom jag har en distribution som bygger på nyare programkällor, så får jag nog räkna med att det blir lite beroendeproblem. Med Windows så slipper man ofta denna typ av problem då alla filer som krävs normalt är paketerade med programmet. Detta kan vara smidigt, men leder lika ofta till problem med olika versioner av filer och att installationerna är gigantiska.
Det finns motsvarande, men säkrare, sätt att distribuera program på Linux och då handlar det om applikationscontainrar. Det finns flera (som Snap, Appimage, Flatpak…) men det ser mer och mer ut som att det format som kommer att dominera är Flatpak. Genom att distribuera program som exempelvis Flatpak så skulle ett företag som Safe sannolikt slippa tillhandahålla flera olika versioner av FME för Linux, och kunna fokusera på att hålla en version uppdaterad. Det blir lite overhead med applikationscontainrar, men det kan det vara värt för att slippa fixa programberoenden.
I mitt fall så fick jag hämta och installera ett antal extra filer innan FME gick att köra.
wget http://archive.ubuntu.com/ubuntu/pool/universe/b/boost-defaults/libboost-all-dev_1.71.0.0ubuntu2_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/universe/b/boost1.67/libboost-chrono1.67.0_1.67.0-17ubuntu8_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/universe/b/boost1.67/libboost-filesystem1.67.0_1.67.0-17ubuntu8_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/universe/b/boost1.67/libboost-iostreams1.67.0_1.67.0-17ubuntu8_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/universe/b/boost1.67/libboost-locale1.67.0_1.67.0-17ubuntu8_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/universe/b/boost1.67/libboost-thread1.67.0_1.67.0-17ubuntu8_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/universe/b/boost1.67/libboost-regex1.67.0_1.67.0-17ubuntu8_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/universe/b/boost1.67/libboost-system1.67.0_1.67.0-17ubuntu8_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/main/p/python3.8/libpython3.8_3.8.2-1ubuntu1_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/main/p/python3.8/libpython3.8-stdlib_3.8.2-1ubuntu1_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/main/p/python3.8/libpython3.8-minimal_3.8.2-1ubuntu1_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/main/g/google-perftools/libtcmalloc-minimal4_2.7-1ubuntu2_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gpsbabel/gpsbabel_1.6.0+ds-10build1_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/universe/s/shapelib/libshp2_1.5.0-1build1_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/main/o/openjdk-lts/openjdk-11-jre-headless_11.0.7+10-3ubuntu1_amd64.deb wget http://archive.ubuntu.com/ubuntu/pool/universe/t/tcllib/tcllib_1.20+dfsg-1_all.deb sudo dpkg -i libboost-system1.67.0_1.67.0-17ubuntu8_amd64.deb sudo dpkg -i libboost-chrono1.67.0_1.67.0-17ubuntu8_amd64.deb sudo dpkg -i libboost-filesystem1.67.0_1.67.0-17ubuntu8_amd64.deb sudo dpkg -i libboost-iostreams1.67.0_1.67.0-17ubuntu8_amd64.deb sudo dpkg -i libboost-thread1.67.0_1.67.0-17ubuntu8_amd64.deb sudo dpkg -i libboost-locale1.67.0_1.67.0-17ubuntu8_amd64.deb sudo dpkg -i libboost-regex1.67.0_1.67.0-17ubuntu8_amd64.deb sudo dpkg -i libboost-system1.67.0_1.67.0-17ubuntu8_amd64.deb sudo dpkg -i libpython3.8-minimal_3.8.2-1ubuntu1_amd64.deb sudo dpkg -i libpython3.8-stdlib_3.8.2-1ubuntu1_amd64.deb sudo dpkg -i libpython3.8_3.8.2-1ubuntu1_amd64.deb sudo dpkg -i libtcmalloc-minimal4_2.7-1ubuntu2_amd64.deb sudo dpkg -i gpsbabel_1.6.0+ds-10build1_amd64.deb sudo dpkg -i libshp2_1.5.0-1build1_amd64.deb sudo dpkg -i gpsbabel_1.6.0+ds-10build1_amd64.deb sudo dpkg -i openjdk-11-jre-headless_11.0.7+10-3ubuntu1_amd64.deb sudo dpkg -i tcllib_1.20+dfsg-1_all.deb
Men när detta var gjort så startade FME hur snällt som helst.
Nu sitter jag inte och jämför med en Windowsinstallation, så jag kan inte på rak arm säga att det finns exakt samma transformers och readers/writers i den här versionen. Men det är samma grundversion av programmet som jag installerar för Linux som finns tillgänglig för Windows.
Det finns en tabell där man kan jämföra programmet på olika plattformar (länk nedan) och det ser ut som att stödet på Linux för olika format, framför allt handlar om den typ av format som kräver att tredjepartstillägg är installerade för att fungera, och där dessa endast finns för Windows, delvis är begränsat. I andra fall är det när formatet endast har stöd på just Windows. Ofta är det inte en total avsaknad av stöd. Exempelvis så kan en hel del av Esri tjänster och format hanteras, men en hel del (som exempelvis kräver ArcGIS) inte kan hanteras. Samma gäller för MapInfo, där de enkla formaten fungerar, medan en del lite mer involverade format saknar stöd på Linux. Hela listan hittar du på Safe hemsida (här).
När det gäller Transformers så är skillnaden mindre totalt sett. Gtrans är en av de modeller som inte stöds, och lika så MRF Geo Systems olika transformers för konvertering av CAD format saknar stöd. Annars ser det riktigt bra ut. Hela denna lista finns också på Safe hemsida (här).
Vill man sedan inte ha krångel med desktopinstallationer på Linux så finns alltid FME Server. Även denna finns för Linux och i en del fall så har man uppmätt ganska stora prestandaskillnader när man kör en Workbench på en Linux server jämfört med Windows. En uppgift från ett Safe forum anger fyra gånger snabbare på Linux på samma hårdvara…
När det gäller Server så har jag dock ingen egen erfarenhet, så jag skall låta det vara osagt huruvida det är stora fördelar på den ena eller andra plattformen.
Det kan vara skillnad på hur enkelt eller svårt det är att installera program generellt på Linux jämfört med Windows. De program som använder samma pakethanterare som distributionen gör är så gott som i alla fall enklare att hantera i Linux än Windows. Pakethanteraren kommer att hantera alla dessa program under hela dess livstid och se till att de uppdateras när de behöver det. Det enda du som användare behöver göra är att välja om du vill uppdatera direkt när uppdateringar blir tillgängliga eller vänta. För program som hanteras manuellt så kan det som i det här fallet dels vara krångligare än i Windows, men det blir även ett program som hamnar lite utanför programhanteringen normalt så det blir du själv som får hålla reda på om det är dags att uppgradera något eller ej, och göra detta manuellt själv. Detta är i och för sig ingen nackdel jämfört med Windows. Om företagen däremot paketerar sina program som Flatpak och tillgängliggör dessa via exempelvis Flathub.org så kommer alla Linuxdistributioner med stöd för Flatpak att kunna hantera programmet bättre åt dig.
Så, FME på Linux. Fungerar det bra? Ja, det får väl tiden utvisa. Jag har ännu så länge bara stött på lite problem just när det handlar om konvertering till format som i grunden inte stöds på Linux. FME kan exempelvis konvertera till såväl 3D PDF som Esri *.slpk, men jag kan inte verifiera om detta fungerat förrän jag hittar en dator som har program som kan läsa dessa filer…
Flatpack är lite bättre än att hanter källkoden direkt. Men inte mycket.
Det är mycket bättre att hantera via distributionens egna paketsystem.
Ur ett användarvänligt perspektiv tycker jag nog Flatpak är ganska mycket bättre än att kompilera källkod. För en erfaren Linux användare så är det kanske en annan sak. Om Flatpak innebär att jag får tillgång till nyare versioner av program snabbare, så kan jag också tycka att det är acceptabelt, när alternativet är att få vänta länge på en uppgradering i just mitt repo för distributionen jag råkar köra. Sedan är det långt ifrån alla program som behöver vara den senaste versionen, men om man vill det så är Flatpak en kompromiss jag kan leva med. Att dessutom kunna installera i profilen och inte i hela systemet känns också ganska ok, om man har användare som vill kunna anpassa och köra program efter eget tycke och smak, utan att de behöver sudo rättigheter. Men allt är såklart relativt och det viktiga är nog att det finns alternativ.
Hm, men http://archive.ubuntu.com/ubuntu/pool/universe/b/boost-defaults/libboost-all-dev_1.71.0.0ubuntu2_amd64.deb är ju ett Ubunut-repository, varför hämtar du för hand?
Jag kör 21.10 och då är de versioner som finns där för nya för att FME installationen skall acceptera det och jag orkade inte med att skapa alias. Så det var enklare att installera för hand, installera FME och sedan uppgradera paketen till 21.10 version.