NÄgot mer: Haiku-apppaket?

NÄgot mer: Haiku-apppaket?

TL;DR: kan Haiku fÄ ordentligt stöd för apppaket, till exempel applikationskataloger (som .*.app i Mac) och/eller applikationsavbilder (Linux AppImage)? Jag tror att det skulle vara ett vÀrdefullt tillÀgg som Àr lÀttare att implementera Àn i andra system, eftersom merparten av infrastrukturen redan finns.

För en vecka sedan upptÀckte jag Haiku, ett ovÀntat bra system. Och eftersom jag lÀnge har varit intresserad av kataloger och avbilder för appar (inspirerad av enkelheten hos Macintosh), Àr det inte konstigt att jag kom att tÀnka pÄ en idé...

För full förstÄelse: jag Àr skaparen och författaren av AppImage, ett format för distribution av Linux-appar som fokuserar pÄ Mac-enkelhet och ger full kontroll till appförfattare och slutanvÀndare (vill du veta mer - se. wiki och dokumentationen).

Vad hÀnder om vi gör AppImage för Haiku?

LÄt oss tÀnka lite, rent teoretiskt: vad behövs för att fÄ AppImage, eller nÄgot liknande, pÄ Haiku? Det Àr inte nödvÀndigt att skapa nÄgot just nu, eftersom systemet som redan finns i Haiku fungerar otroligt bra, men den förestÀllda experimentet skulle vara intressant. Det skulle ocksÄ visa pÄ finheten i Haiku, i kontrast till Linux-skrivbordsmiljöer dÀr sÄdana saker Àr fruktansvÀrt svÄra (jag har rÀtt att sÀga sÄ: jag har kÀmpat med det i 10 Är).

NÄgot mer: Haiku-apppaket?
PÄ Macintosh System 1 var varje applikation enskilda filer, 'hanterade' i Finder. Med AppImage försöker jag Äterskapa den samma anvÀndarupplevelsen pÄ Linux.

Först och frÀmst, vad Àr AppImage? Det Àr ett system för att publicera applikationer frÄn tredjepartsutvecklare (till exempel, Ultimaker Cura), vilket gör att applikationer kan slÀppas nÀr och hur de vill: de behöver inte kÀnna till olika distributions specifikationer, byggpolicyer eller bygginfrastruktur, de behöver inte stödja uppdateringar och de sÀger inte till anvÀndarna vad som (inte) kan installeras pÄ deras datorer. TÀnk pÄ AppImage som nÄgot liknande ett paket för Mac i formatet .*.app inuti disklÀget .dmg. Den största skillnaden Àr att applikationerna inte kopieras, utan förblir inuti AppImage permanent, ungefÀr som Haiku-paketen .hpkg monteras, och installeras aldrig i den vanliga bemÀrkelsen.

AppImage har under sina mer Àn 10 Är av existens blivit ganska attraktiv och populÀr: Linus Torvalds har offentligt godkÀnt den, och populÀra projekt (som LibreOffice, Krita, Inkscape, Scribus, ImageMagick) har anammat den som sitt huvudsakliga sÀtt att distribuera kontinuerliga eller nattliga byggen utan att störa anvÀndarnas installerade eller icke-installerade program. Dock tenderar arbetsmiljöer och Linux-distributioner ofta att hÄlla fast vid den traditionella, centraliserade distributionsmodellen baserad pÄ följande och/eller frÀmjar sina egna företags- och/eller ingenjörsprogram baserade pÄ Flatpak (RedHat, Fedora, GNOME) och Snappy (Canonical, Ubuntu). Det blir snart löjligt.

Hur allt fungerar

  • Varje AppImage innehĂ„ller 2 delar: en liten körbar ELF-fil som kan köras genom dubbelklick (kallad runtime.c), följt av en filsystemavbildning SquashFS.

NÄgot mer: Haiku-apppaket?

  • SquashFS-filsystemet innehĂ„ller nyttolasten i form av applikationen och allt som behövs för att köra den, vilket inte rimligt kan betraktas som en del av standardinstallationen för varje nĂ„gorlunda ny mĂ„lsystem (Linux-distribution). Den innehĂ„ller ocksĂ„ metadata, till exempel applikationsnamn, ikoner, MIME-typer och sĂ„ vidare.

NÄgot mer: Haiku-apppaket?

  • Vid körning anvĂ€nder runtime FUSE och squashfuse för att montera filsystemet, varefter det hanterar körningen av en viss ingĂ„ngspunkt (sĂ„ kallad AppRun) inuti den monterade AppImage.
    Filsystemet avmonteras efter att processen har avslutats.

Det verkar alla Àr enkla.

Men dessa saker gör allt mer komplicerat:

  • Med en sĂ„ stor variation av Linux-distributioner kan inget "i sunt förnuft" kallas "del av standardinstallationen för varje ny mĂ„lsystem". Vi kringgĂ„r detta problem genom att skapa en excludelist, som möjliggör att definiera vad som ska packas in i AppImage och vad som behöver hĂ€mtas nĂ„gon annanstans. Ibland missar vi dock mĂ„let, trots att allt fungerar utmĂ€rkt. Av den anledningen rekommenderar vi paketproducenter att testa AppImages pĂ„ alla mĂ„lsystem (distributioner).
  • Applikationer nĂ€r det gĂ€ller utrymmesnyttja bör vara flyttbara i filsystemet. TyvĂ€rr har mĂ„nga applikationer hĂ„rdkodade absoluta sökvĂ€gar till resurser i /usr/share. Det mĂ„ste Ă„tgĂ€rdas pĂ„ nĂ„got sĂ€tt. Utöver detta mĂ„ste antingen exportera LD_LIBRARY_PATH, eller fixa rpath sĂ„ att bootloadern kan hitta de relaterade biblioteken. Den första metoden har sina nackdelar (som hanteras med komplicerade metoder), medan den andra Ă€r helt enkelt otymplig.
  • Den största UX-fĂ€llan för anvĂ€ndare Ă€r att de mĂ„ste ange exekveringsbit för AppImage-filen efter nedladdning. Vill du tro det eller ej, men för vissa Ă€r det en verklig barriĂ€r. Kravet pĂ„ att ange exekveringsbiten Ă€r otympligt Ă€ven för erfarna anvĂ€ndare. Som en workaround har vi föreslagit att installera en liten tjĂ€nst som hĂ„ller reda pĂ„ AppImage-filer och sĂ€tter exekveringsbiten. I ren form Ă€r det inte den bĂ€sta lösningen, eftersom det inte fungerar "ur lĂ„dan". Linux-distributioner levererar inte denna tjĂ€nst, sĂ„ anvĂ€ndarna har det "ur lĂ„dan" dĂ„ligt.
  • Linux-anvĂ€ndare förvĂ€ntar sig att det nya programmet ska ha en ikon i startmenyn. Man kan inte sĂ€ga till systemet: "Titta, dĂ€r Ă€r det nya programmet, kör det". IstĂ€llet, enligt XDG-specifikationen, mĂ„ste man kopiera filen .desktop till rĂ€tt plats i /usr för systeminstallation, eller i $HOME för individuell installation. Ikoner av specifika storlekar, enligt XDG-specifikationen, behöver placeras pĂ„ specifika stĂ€llen i usr eller $HOME, varefter man mĂ„ste köra kommandon i arbetsmiljön för att uppdatera ikonkatalogen, eller hoppas att skrivbordsmiljöförvaltaren förstĂ„r och automatiskt upptĂ€cker allt. PĂ„ samma sĂ€tt med MIME-typer. Som en workaround föreslĂ„s att anvĂ€nda samma tjĂ€nst som förutom att stĂ€lla in exekveringsbiten kommer att kopiera ikoner och annat frĂ„n AppImage till rĂ€tt platser enligt XDG. Vid borttagning eller flytt förvĂ€ntas tjĂ€nsten stĂ€da upp allt. SjĂ€lvklart finns det skillnader i beteende mellan olika skrivbordsmiljöer, i format för grafiska filer, deras storlekar, lagringsplatser och sĂ€tt att uppdatera kataloger, vilket skapar problem. Kort sagt, den hĂ€r metoden Ă€r en nödlösning.
  • Om inget av ovanstĂ„ende Ă€r tillrĂ€ckligt, sĂ„ finns det inte ens en AppImage-ikon i filhanteraren. I LinuxvĂ€rlden har man fortfarande inte kommit fram till en lösning för att införa elficon (trots att det har varit en diskussion och om implementering)), vilket gör det omöjligt att lĂ€gga in ikonen direkt i applikationen. SĂ„ledes har applikationerna i filhanteraren inga egna ikoner (oavsett om det Ă€r AppImage eller nĂ„got annat), de finns endast i startmenyn. Som en lösning anvĂ€nder vi miniatyrer — en mekanism som ursprungligen utvecklades för att skrivbordshanterare skulle kunna visa miniatyrbilder för en förhandsvisning av grafiska filer som deras ikoner. DĂ€rmed fungerar tjĂ€nsten för att sĂ€tta exekverbars rĂ€ttigheter ocksĂ„ som en „miniatyrskapare“, som skapar och sparar miniatyrer av ikoner pĂ„ rĂ€tt platser. /usr och $HOME. Dessutom utför denna tjĂ€nst stĂ€dning om AppImage tas bort eller flyttas. Eftersom varje skrivbordshanterare beter sig nĂ„got olika, till exempel i vilka format de accepterar ikoner, i vilka storlekar eller platser, Ă€r detta verkligen besvĂ€rligt.
  • Applikationen kraschar bara vid exekvering om det uppstĂ„r fel (till exempel finns det ett bibliotek som inte Ă€r en del av det grundlĂ€ggande systemet och inte levereras i AppImage), och ingen informerar anvĂ€ndaren i GUI:et om vad som egentligen hĂ€nder. Vi har börjat kringgĂ„ detta genom att anvĂ€nda meddelanden pĂ„ skrivbordet, vilket innebĂ€r att vi behöver fĂ„nga upp fel frĂ„n kommandoraden, omvandla dem till anvĂ€ndarvĂ€nliga meddelanden som sedan mĂ„ste visas pĂ„ skrivbordet. Och naturligtvis hanterar varje arbetsmiljö dem lite annorlunda.
  • För nĂ€rvarande (september 2019, — anm. övers. ) har jag inte hittat ett enkelt sĂ€tt att sĂ€ga till systemet att filen 1.png ska öppnas med Krita, och 2.png — med GIMP.

NÄgot mer: Haiku-apppaket?
Platsen för lagring av cross-desktop specifikationer som anvÀnds i GNOME, KDE och Xfce Àr freedesktop.org

Att uppnÄ en nivÄ av förfining som Àr djupt intrasslad i arbetsmiljön Haiku Àr försvÄrat, om inte omöjligt, pÄ grund av specifikationerna XDG frÄn freedesktop.org för cross-desktop, samt implementationerna av skrivbordshanterare baserade pÄ dessa specifikationer. Som exempel kan vi nÀmna en allmÀn ikon för Firefox: tydligen har inte XDG:s skapare ens tÀnkt pÄ att anvÀndaren kan ha flera versioner av samma applikation installerad.

NÄgot mer: Haiku-apppaket?
Ikoner för olika versioner av Firefox

Jag var nyfiken pĂ„ vad vĂ€rlden av Linux skulle kunna lĂ€ra sig av Mac OS X, för att undvika misslyckanden vid systemintegration. Om du har tid och arbetar med sĂ„dant – lĂ€s absolut vad Arno Gourdol, en av de första ingenjörerna bakom Mac OS X, hade att sĂ€ga:

Vi ville att installationen av en applikation skulle vara lika enkel som att dra och slÀppa applikationsikonen frÄn nÄgonstans (server, extern enhet) till din dators hÄrddisk. För detta sÄ sparas all information i applikationspaketet, inklusive ikoner, version, bearbetad filtyp, och typ av URL-schema som systemet behöver veta för att kunna hantera applikationen. Detta inkluderar Àven information för 'centraliserad lagring' i databasen Icon Services och Launch Services. För att stödja applikationens prestanda sÄ 'upptÀckts' den pÄ flera 'vÀlkÀnda' platser: i systemkatalogen och anvÀndarkatalogen Applications, samt pÄ nÄgra andra stÀllen automatiskt, om anvÀndaren navigerar i Finder till katalogen som innehÄller applikationen. I praktiken har detta fungerat mycket bra.

https://youtu.be/qQsnqWJ8D2c
Apple WWDC 2000 session 144 – Mac OS X: paketering av applikationer och utskrift av dokument.

Det finns inget liknande i denna infrastruktur för Linux arbetsmiljöer, sÄ vi letar efter lösningar för de strukturella begrÀnsningarna i AppImage-projektet.

NÄgot mer: Haiku-apppaket?
Skynda Haiku till hjÀlp?

Och dessutom: plattformar av Linux som grund för arbetsmiljöer Àr oftast sÄ underdefinierade att mÄnga saker som Àr ganska enkla i ett konsekvent system med fullstÀndig stack, frustrerar med sin fragmentering och komplexitet i Linux. Jag Àgnade en hel presentation Ät frÄgorna kring Linux-plattformar för arbetsmiljöer (kunniga utvecklare bekrÀftade: det kommer att förbli sÄ vÀldigt lÀnge framöver).

Spela video

Mitt föredrag om problem med Linux arbetsmiljöer 2018

Även Linus Torvalds erkĂ€nde att det var pĂ„ grund av fragmenteringen som idĂ©n om arbetsmiljöer misslyckades.

Det Àr trevligt att se Haiku!

Med Haiku blir allt fantastiskt enkelt

Även om den naiva metoden att "överföra" AppImage till Haiku handlar om att enkelt försöka bygga (frĂ€mst runtime.c och tjĂ€nsten) dess komponenter (vilket kanske till och med Ă€r möjligt!), kommer det inte att ge mycket nytta för Haiku. Eftersom de flesta av dessa problem faktiskt har lösts i Haiku och Ă€r konceptuellt grundade. Haiku tillhandahĂ„ller just de byggstenar för systeminfrastrukturen som jag lĂ€nge har sökt i arbetsmiljöer pĂ„ Linux och inte kunnat tro att de inte fanns dĂ€r. NĂ€mligen:

NÄgot mer: Haiku-apppaket?
Tro det eller ej, men detta Àr nÄgot som mÄnga Linux-anvÀndare inte kan övervinna. PÄ Haiku görs allt automagiskt!

  • ELF-filer utan exekveringsbit fĂ„r det automatiskt vid dubbelklick i filhanteraren.
  • Applikationer kan ha inbyggda resurser, till exempel ikoner, som visas i filhanteraren. Det behövs ingen kopiering av massor av bilder till speciella kataloger med ikoner, och dĂ€rför behöver man inte stĂ€da upp dem efter borttagning eller flytt av applikationen.
  • Det finns en databas för att koppla applikationer med dokument, det behövs ingen kopiering av filer för detta.
  • Bland mappen lib/ letas bibliotek per standard vid sidan av den exekverbara filen.
  • Det finns inte mĂ„nga distributioner och skrivbordsmiljöer, allt som fungerar – fungerar överallt.
  • Det finns ingen separat modul för körning, som skiljer sig frĂ„n katalogen Applications.
  • Applikationerna har inga inbyggda absoluta sökvĂ€gar till sina resurser, det finns speciella funktioner för att bestĂ€mma plats under exekvering.
  • IdĂ©n med komprimerade filsystembilder har införlivats: det Ă€r varje pakethpkg. Alla monteras av kĂ€rnan.
  • Varje fil öppnas av den applikation som skapade den, om inget annat uttryckligen anges. Vad hĂ€ftigt det Ă€r!

NÄgot mer: Haiku-apppaket?
TvĂ„ png-filer. Observera de olika ikonerna som visar att de kommer att öppnas av olika applikationer vid dubbelklick. Observera ocksĂ„ rullgardinsmenyn "Öppna med:", dĂ€r anvĂ€ndaren kan vĂ€lja en specifik applikation. SĂ„ enkelt!

Det verkar som att mÄnga av de lösningar och genvÀgar som AppImage behöver pÄ Linux blir onödiga pÄ Haiku, som har enkelhet och sofistikering i sin grund och dÀrför klarar av de flesta av vÄra behov.

Behöver Haiku applikationspaket, till slut?

Det leder till en stor frÄga. Om det skulle vara betydligt enklare att skapa ett system liknande AppImage pÄ Haiku Àn pÄ Linux, borde man dÄ satsa pÄ det? Eller har Haiku med sitt paketssystem hpkg i praktiken eliminerat behovet av att utveckla en sÄdan idé? För att svara pÄ detta behöver vi se pÄ motivationen bakom existensen av AppImages.

En anvÀndares perspektiv

LÄt oss titta pÄ vÄr slutanvÀndare:

  • Jag vill installera ett program utan att behöva ange administratörslösenord (root). PĂ„ Haiku finns inget begrepp för en administratör; anvĂ€ndaren har full kontroll eftersom det Ă€r ett personligt system! (Man kan i princip tĂ€nka sig detta i en fleranvĂ€ndarmiljö; jag hoppas att utvecklarna bevarar enkelheten)
  • Jag vill fĂ„ de senaste och bĂ€sta versionerna av program, utan att vĂ€nta pĂ„ att de dyker upp i min distribution (ofta betyder det "aldrig", Ă„tminstone om man inte uppdaterar hela operativsystemet). PĂ„ Haiku Ă€r detta "lösta" genom sĂ„ kallade flytande utgĂ„vor. Det innebĂ€r att det finns möjlighet att fĂ„ senaste och bĂ€sta versioner av program, men för detta krĂ€vs stĂ€ndiga uppdateringar av resten av systemet, vilket i praktiken gör det till ett "rörligt mĂ„l"..
  • Jag vill ha flera versioner av samma program bredvid varandra, eftersom man aldrig vet vad som kan ha gĂ„tt fel i den senaste versionen, eller, som webbutvecklare, behöver jag testa mitt arbete med olika versioner av webblĂ€sare. I Haiku Ă€r det första problemet löst, men inte det andra. Uppdateringar kan rullas tillbaka, men bara för hela systemet; det Ă€r omöjligt (sĂ„vitt jag vet) att köra flera versioner av WebPositive eller LibreOffice samtidigt.

En av utvecklarna skriver:

I grund och botten Àr motiveringen att anvÀndningsscenariet Àr sÄ sÀllsynt att det inte Àr meningsfullt att optimera för det; att hantera det som ett specialfall i HaikuPorts verkar mer Àn acceptabelt.

  • Jag behöver kunna spara program dĂ€r jag vill, inte pĂ„ startdisken. PĂ„ mina diskar tar ofta utrymmet slut, sĂ„ jag mĂ„ste koppla in en extern disk eller en nĂ€tverkskatalog för att lagra program (alla versioner som jag har laddat ner). Om jag kopplar in en sĂ„dan disk mĂ„ste programmen kunna startas med dubbelklick. Haiku sparar gamla versioner av paket, men jag vet inte hur jag kan flytta dem till en extern disk, eller hur jag sedan kan starta program frĂ„n dĂ€r.

Utvecklarens kommentar:

Tekniskt sett Àr det redan möjligt med mount-kommandot. Naturligtvis kommer vi att skapa ett GUI för detta sÄ snart tillrÀckligt mÄnga intresserade anvÀndare finns.

  • Jag vill inte ha miljontals filer spridda över filsystemet som jag sjĂ€lv inte kan hantera manuellt. Jag vill ha en fil per applikation som jag lĂ€tt kan ladda ner, flytta eller ta bort. I Haiku har detta problem lösts genom paket .hpkg, som samlar exempelvis python, frĂ„n tusentals filer till en. Men om det finns, till exempel, Scribus, som anvĂ€nder python, mĂ„ste jag hantera minst tvĂ„ filer. Och jag mĂ„ste se till att jag behĂ„ller versioner som fungerar tillsammans.

NÄgot mer: Haiku-apppaket?
MÄnga versioner av AppImages som körs bredvid varandra pÄ samma Linux

Perspektiv frÄn en applikationsutvecklare

LÄt oss se ur ett applikationsutvecklarperspektiv:

  • Jag vill ha full kontroll över anvĂ€ndarupplevelsen. Jag vill inte vara beroende av operativsystemet som sĂ€ger till mig nĂ€r och hur jag ska slĂ€ppa applikationer. I Haiku kan utvecklare arbeta med sina egna hpkg-repositorier, men det innebĂ€r att anvĂ€ndare mĂ„ste konfigurera dem manuellt, vilket gör den idĂ©n "mindre attraktiv".
  • Jag har en nedladdningssida pĂ„ min webbplats dĂ€r jag distribuerar .exe för Windows, .dmg för Mac och .AppImage för Linux. Och kanske vill jag monetisera tillgĂ„ngen till denna sida, vad som helst kan hĂ€nda? Vad behöver jag lĂ€gga dĂ€r för Haiku? TillrĂ€ckligt med en fil .hpkg med beroenden som bara kommer frĂ„n HaikuPorts.
  • Min programvara behöver specifika versioner av annan programvara. Till exempel Ă€r det kĂ€nt att Krita behöver en korrigerad version av Qt, eller Qt som Ă€r exakt anpassad för en viss version av Krita, Ă„tminstone tills korrigeringarna kommer tillbaka i Qt. Jag kan paketera min egen Qt för applikationen i paketet .hpkg, men det kommer troligen inte att vĂ€lkomnas.

NÄgot mer: Haiku-apppaket?
En vanlig nedladdningssida för applikationen. Vad ska jag lÀgga hÀr för Haiku?

Kommer kit (som finns i form av programkataloger som AppDir eller .*.app i Apple-stil) och/eller avbildningar (i form av starkt modifierade AppImages eller .dmg Ă€r en anvĂ€ndbar tillĂ€gg för arbetsmiljön Haiku frĂ„n Apple? Eller kommer det att bryta den helhetsbild och leda till fragmentering, vilket i sin tur gör det mer komplicerat? Jag Ă€r kluven: Ă„ ena sidan, skönheten och elegansen i Haiku bygger pĂ„ att det oftast finns ett sĂ€tt att göra nĂ„got, inte flera. Å andra sidan Ă€r en stor del av infrastrukturen för kataloger och/eller applikationspaket redan pĂ„ plats, sĂ„ systemet anropar att Ă€ven de kvarstĂ„ende procenten fĂ„r sina platser.

Enligt utvecklaren mr. waddlesplash

PÄ Linux Àr de (kataloger och applikationspaket, anm. översÀttaren) förmodligen en teknisk lösning pÄ systemproblem. PÄ Haiku föredrar vi att bara lösa systemproblemen.

Vad tycker du?

Innan du svarar...

VÀnta, lÄt oss göra en snabb verklighetskontroll: i praktiken applikationskataloger Àr redan en del av Haiku:

NÄgot mer: Haiku-apppaket?
Applikationskataloger finns redan pÄ Haiku, men stöds Ànnu inte i filhanteraren.

De stöds helt enkelt inte sÄ bra som, sÀg, i Macintosh Finder. Hur coolt skulle det vara om QtCreator-katalogen hade namnet och ikonen 'QtCreator' i det övre vÀnstra hörnet som startar applikationen vid dubbelklick?

Tidigare har jag redan frÄgat:

Är du sĂ€ker pĂ„ att du kommer att kunna köra dina tioĂ„riga applikationer idag, nĂ€r alla applikationsbutiker och distributionslager har glömt bort dem och deras beroenden? Är du sĂ€ker pĂ„ att du fortfarande kommer att kunna komma Ă„t ditt nuvarande arbete i framtiden?

Har Haiku redan ett svar, eller kan kataloger och applikationspaket hjÀlpa till hÀr? Jag tror att de kan.

Enligt mr. waddlesplash:

Ja, vi har ett svar pĂ„ frĂ„gan: vi kommer helt enkelt att stödja dessa applikationer sĂ„ lĂ€nge som behövs, tills nĂ„gon kan lĂ€sa deras filformat korrekt eller sĂ€kerstĂ€lla en funktionalitet ett till ett. VĂ„r strĂ€van att stödja BeOS R5-applikationer pĂ„ Haiku Ă€r ett direkt bevis pĂ„ detta


Det stÀmmer!

Vilken handlingsplan bör Haiku följa?

Jag kan förestÀlla mig ett fredligt samexisterande av hpkg, kataloger och applikationsbilder:

  • Systemprogramvaran anvĂ€nder .hpkg
  • För den mest frekvent anvĂ€nda programvaran (sĂ€rskilt för de som behöver planera flytande slĂ€pp) anvĂ€nds .hpkg (ungefĂ€r 80% av alla fall)
  • Vissa program, installerade via .hpkg, kommer att gynnas av att gĂ„ över till en infrastruktur med applikationskataloger (till exempel QtCreator): de kommer att distribueras som .hpkg, precis som tidigare.

mr. waddlesplash skriver:

Om allt som behövs Àr att visa applikationer i /system/apps, istÀllet bör katalogerna i Deskbar göras mer hanterbara för anvÀndarna, eftersom /system/apps inte Àr avsett för att anvÀndare regelbundet ska öppna och titta pÄ det (till skillnad frÄn MacOS). För sÄdana situationer har Haiku en annan paradigm, men det hÀr alternativet Àr, i teorin, acceptabelt.

  • Haiku fĂ„r infrastrukturen för att köra applikationsavbilder, nattsmĂ„lningar, kontinuerliga och testbyggnader av mjukvara, samt för fall nĂ€r anvĂ€ndaren vill 'frysa det i tiden', för privat och internt mjukvara, och andra speciella anvĂ€ndningsfall (ungefĂ€r 20% av allt). Dessa avbilder innehĂ„ller filerna som krĂ€vs för att köra applikationen .hpkg, monterade med systemets medel, och efter att applikationen avslutats — avmonterade. (Kanske skulle filhanteraren kunna placera filer .hpkg i applikationsavbilder, automatiskt eller pĂ„ begĂ€ran av anvĂ€ndaren — som nĂ€r man drar en applikation till en nĂ€tverkskatalog eller extern disk. Det Ă€r verkligen en sĂ„ng! Eller kanske mer en dikt — haiku.) Å andra sidan kan anvĂ€ndaren vilja installera innehĂ„llet i avbilden som filer.hpkg, efter vilket de kommer att uppdateras och hanteras pĂ„ exakt samma sĂ€tt som om de hade installerats via HaikuDepot... Det krĂ€vs en idĂ©bollning).

Citat frÄn mr. waddlesplash:

Att köra applikationer frÄn externa diskar eller nÀtverkskataloger kan potentiellt vara anvÀndbart. Och att lÀgga till möjligheten att konfigurera fler 'zoner' för pkgman skulle verkligen bli en bra funktion.

Ett sÄdant system kommer att utnyttja fördelarna med hpkg, kataloger och applikationsavbilder. De Àr bra var för sig, men tillsammans kommer de att bli oslagbara.

Slutsats

För Haiku finns det en infrastruktur som erbjuder ett enkelt och sofistikerat anvĂ€ndargrĂ€nssnitt för PC, och det strĂ€cker sig lĂ„ngt bortom vad som vanligtvis erbjuds för PC pĂ„ Linux. Paketsystemet .hpkg — ett av dessa exempel, men de andra delarna av systemet Ă€r ocksĂ„ genomsyra av finess. ÄndĂ„ skulle Haiku vinna pĂ„ rĂ€tt stöd för kataloger och applikationspaket. Hur man bĂ€st gĂ„r tillvĂ€ga bör diskuteras med mĂ€nniskor som kĂ€nner Haiku, dess filosofi och arkitektur mycket bĂ€ttre Ă€n jag. Slutligen har jag anvĂ€nt Haiku i lite mer Ă€n en vecka. Men jag anser Ă€ndĂ„ att denna nya perspektiv kommer att vara till nytta för designers, utvecklare och arkitekter av Haiku. Åtminstone ser jag gĂ€rna mig sjĂ€lv som en "sparringpartner" för dem. Jag har över 10 Ă„rs praktisk erfarenhet av kataloger och applikationspaket för Linux, och jag skulle vilja hitta tillĂ€mpningar för Haiku, för vars koncept, enligt min mening, de passar perfekt. De potentiella lösningar jag föreslĂ„r Ă€r inte de enda rĂ€tta för de problem jag beskrivit, och om Haiku-teamet beslutar sig för att hitta andra, mer eleganta lösningar — sĂ„ Ă€r det jag helt och hĂ„llet för. I princip funderar jag redan pĂ„ hur man kan göra systemet hpkg Ă€nnu mer imponerande, utan att Ă€ndra pĂ„ hur det fungerar. Det visar sig att Haiku-teamet har tĂ€nkt pĂ„ applikationspaket under införandet av paketförvaltningssystemet, men tyvĂ€rr, (det verkar som) idĂ©n har blivit "förĂ„ldrad". Kanske Ă€r det dags att Ă„teruppliva den?

Prova sjÀlv! Eftersom Haiku-projektet tillhandahÄller bilder för nedladdning frÄn DVD eller USB, som skapas dagligen.
Har du frÄgor? VÀlkommen till vÄr svensksprÄkiga telegramkanal.

Felkod: Hur man skjuter sig sjÀlv i foten i C och C++. En samling recept för Haiku OS

FrÄn författare översÀttning: detta Àr den Ättonde och sista artikeln i serien om Haiku.

Artikellista: Första Andra Tredje FjÀrde Femte SjÀtte Sjunde

Endast registrerade anvÀndare kan delta i omröstningen. Logga in, tack.

Är det meningsfullt att portera hpkg-systemet till Linux?

  • Ja

  • Ingen

  • Redan genomfört, jag kommer att skriva kommentarer.

Röstade 20 anvÀndare. Avstod 5 anvÀndare.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster