Packaging voor Sickbeard, CouchPotato en Headphones

Door Mar2zz op zaterdag 8 oktober 2011 12:00 - Reacties (12)
CategorieŽn: Couchpotato, Downloaden, Headless onderhoud, Headphones, Sickbeard, Views: 7.982

Laatst las ik deze blog van Thomasie. Daar gaat het over de ongemakken van Linux, al ben ik het niet met hem eens daarover, het kan altijd makkelijker. Daarom schrijf ik ook al een tijd scripts, om installaties makkelijker te maken voor must-have-apps in download-automation-country. Maar wat is nu makkelijker, of net zo makkelijk, als een windows installatiefile, wat vaak .exe of .msi (is dit nog wel zo?) files zijn. Deze hoef je slechts te downloaden en dubbelklikken en de applicatie is geinstalleerd. Linux heeft dat ook, voor elke packagemanager een smaakje, en voor Ubuntu zijn dat .deb files. Dus ben ik in de .deb-file materie gedoken.

Verschil tussen installscripts en .deb-files
Een installscript is zo gemaakt. Je zet wat commando's in een script, zorgt ervoor dat het error proof is en laat ze uitvoeren door de gebruiker. De terminal rammelt wat (kan interactief gemaakt worden) en de applicatie is geinstalleerd. In zo een script moet je, om een mappenstructuur te krijgen voor je installatiefiles, allerlei commando's extra ingeven.

Dus een installscript zal vol staan met mkdir (=maak map) en mv/cp (verplaats of kopieer) en chmod's (verander bestandspermissies, bijvoorbeeld executable maken). Met een .deb file is dat allemaal niet nodig.

Een .deb file is eigenlijk een zipfile met wat extra zaken. Er zijn wat verplichte files, die vertellen aan de packagemanager Apt wat ie moet doen en wat er in de .deb zit. Maar het mooiste van een .debfile maken is dat je de gewenste directorystructuur en bestandspermissies van te voren al kunt zetten. Deze directorystructuur en bestandspermissies worden 1 op 1 overgenomen op het systeem waarop de .deb wordt geinstalleerd.

Daarnaast is Apt zich na installatie met een .deb ook bewust van de installatie, en kan een programma verwijderd worden met het alom bekende sudo apt-get remove programma. En daarbij kan je zelfs vertellen welke bestanden hij dan met rust moet laten (de config-files bijvoorbeeld). Mocht je die configfiles dan wel kwijt willen dan doe je gewoon een sudo apt-get purge programmanaam.

Nog een ander groot voordeel voor linux-newbies, .deb files openen by default in het softwarecentrum van Ubuntu, en kunnen vanuit daar geinstalleerd en gedeinstalleerd worden, en als .deb-maintainer kun je dan gelijk wat info tonen in dat scherm over de werking van het programma.

Als laatste kun je als scriptschrijver je ook uitleven, want je kunt scripts uit laten voeren voor install, na install, voor uninstall en na uninstall. Ik heb me compleet uitgeleefd door een script te schrijven dat vanuit niets packages maakt voor Sickbeard, Couchpotato en Headphones. Alle files in de packages worden dus automatisch aangemaakt, en daardoor kan ik binnen een minuut 3 verse debfiles genereren met de laatste bestanden van Github van deze apps.

deb-file structuur
Zoals gezegd, in een deb-file maak je de mappenstructuur aan zoals je die op de machine wilt hebben. Dus je maakt ergens een directory, bijvoorbeeld test. Binnen test maak je dan de directorystructuur na van linux, als je files in een bepaald directory wilt hebben. Dus bijvoorbeeld, /test/init.d/opstartbestand en /test/opt/programmanaam/programmabestanden en zo verder tot je al je files hebt staan.

Daarna kun je de filepermissies zetten. Bijvoorbeeld uitvoerbaar maken, chmod +x /test/init.d/opstartbestand. Deze permissies worden tijdens de installatie met een debfile gewoon overgezet.

Dan nog het belangrijkste. In je deb-file moet een map DEBIAN zitten. Dus /test/DEBIAN in dit voorbeeld. In deze map leg je instructies voor de packagemanager, Apt, vast.

DEBIAN files
Er is 1 file verplicht, dat is de file die je 'control' noemt. Hieruit haalt Apt alle gegevens over het programma. Versienummer, dependency's en dergelijke. Als voorbeeld zie je hier de control-file voor couchpotato.deb, het programma van medetweaker Ruud Burger.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Package: couchpotato
Version: 2011.10.08
Section: web 
Priority: optional
Architecture: all
Essential: no
Depends: python (>= 2.6)
Recommends: git-core
Installed-Size: 13964
Maintainer: Mar2zz <lasi.mar2zz@gmail.com>
Provides: couchpotato
Description: CouchPotato (CP) is an automatic NZB and torrent downloader.
 You can keep a 'movies I want'-list and it will search for NZBs/torrents of these movies every X hours.
 Once a movie is found, it will send it to SABnzbd or download the torrent to a specified directory.
 .
 CouchPotato can be found @ http://couchpotatoapp.com/ and is written and maintained by Ruud Burger
 .
 CouchPotato is installed in /opt/couchpotato, config and data in ~/.couchpotato (configurable).
 Type couchpotato --help for options


Zoals je ziet staan hier veel verschillende velden. Deze worden gebruikt om na de ':' info te geven aan Apt over je .deb-package. Dit hier is een vrij minimale set. Ik ga niet op alle velden/mogelijkheden in, hier staat een enorme waslijst (en ja, ik heb dat flink zitten doorspitten, er is geen drogere stof denkbaar)

Met deze controlfile kun je Apt vertellen dat er dependency's zijn, zoals hier Python (v 2.6 of hoger). Als dat niet op het systeem staat dan zal de installatie stoppen. Zodra je dan python 2.6 of hoger installeert zal de installatie afgemaakt worden. Dit kan direct na de installatie van de debfile, door sudo apt-get -f install te typen, dan komt python op het systeem. Bij ubuntu is python 2.6 overigens standaard aanwezig.

De description zie je staan in het Softwarecentrum, en als er nieuwe debfiles zijn dan heb je ook nog het voordeel dat je van daaruit kan opwaarderen naar de nieuwere versie. Dit zou ook allemaal via een eigen repository kunnen zodat het meegaat in het update-beheer van Ubuntu. Het heeft dus veel voordelen dat Apt je programma 'kent'.
deb in softwarecentrum

Daarnaast kun je in de DEBIAN aangeven wat Apt moet doen voor en na installatie, en voor en na deinstallatie. Deze files heten respectievelijk preinst, postinst, prerm en postrm.

In de preinst kun je bijvoorbeeld een draaiende service stoppen voordat de installatie of upgrade van je programma begint, en deze via postinst (na installatie) weer starten. Dat stoppen van ie service is ook handig in prerm. Omdat deze 4 bestanden bashscripts zijn is het enorm flexibel. Omdat een installatie als root wordt uitgevoerd is het wel uitkijken met wat je hier script. En daarom is het ook link om zomaar overal .deb-files vandaan te halen. Aan de andere kant, je kunt een deb-file altijd openen met archiefbeheer en dan in de bestanden neuzen en kijken of het allemaal veilig is. Maar dat is natuurlijk meer iets voor linux-veteranen.

Dus net als op Windows, is het op Linux net zo onveilig om zomaar te pas en te onpas .deb files en/of scripts uit te voeren. Alleen is het voordeel op linux altijd dat je kan lezen wat die dingen doen (als je tenminste scripttaal verstaat).

De control-file en de post en pre files moeten allemaal chmod 755 rechten hebben.

In DEBIAN kun je ook nog aangeven welke files bij een 'sudo apt-get remove' moeten blijven staan. Dat zijn bijvoorbeeld de configfiles die je programma aanmaakt. Het pad naar zo een configfile zet je in DEBIAN/conffiles. Dat moet gewoon een normaal tekstbestand zijn, met chmod 644 rechten en zonder witregels. In deze file zet je het volledige pad naar je configuratiebestand, dus bijvoorbeeld /etc/default/couchpotato. Daarbij moet dit configuratiebestand ook aanwezig zijn in de deb-package zelf.

.deb bouwen
Als de complete mapstructuur is gebouwd en de benodigde files staan in DEBIAN, dan kun je de package bouwen. Dit doe je met het commando
fakeroot dpkg -b /pad/naar/programma /pad/naar/debfile/programmanaam-versienummer.deb
Wat betreft de naamgeving van de debfile zijn er 'afspraken' gemaakt. Meer daarover staat ook in bovenstaande link. In principe is het programmanaam.versie.subversie-architectuur-eventueeldistro.deb.

Architectuur is bijvoorbeeld x86 of ARM, dus cpu-type. Als het niet uitmaakt kun je er ALL neerzetten.

Je debfile is dan klaar en als je alles goed doet dan zal Apt of het Software-centrum ook niet gaan zeuren over dingen die niet goed zijn gedaan. Bouw bijvoorbeeld eens een .deb zonder de fakeroot optie en open die in het softwarecentrum. Dan krijg je waarschuwingen dat de .deb file slordig in elkaar is gezet. Er zijn dus nog allerhande controles die uitgevoerd worden of alles wel netjes in elkaar zit.

Afsluiting
Het bouwen van .deb files was dus zomaar een idee. In eerste instantie dacht ik dat het een kwestie was van directory structuur namaken en klaar. Maar dan komen er de zaken zoals die in de DEBIAN-map staan. En dan wil je ook nog wat extra's inbouwen waarmee het te installeren programma makkelijker te gebruiken wordt.

Dus ik kwam ook op het idee om een executable te schrijven voor alle drie de programma's waarmee vanuit elke locatie op het systeem het programma gestart kan worden met alleen programmanaam in de terminal. En dan wil je ook nog settings scheiden van de daemon (het bestand dat het programma start @ systeemstart). En om het dan de linux-way te houden ook nog gebruik maken van default-locaties voor programma's. En een helptext natuurlijk... En systeem-logging in geval van fouten... Daar kwam weer heel wat scriptwerk achter weg.

Maar de installatie is nu een fluitje van een cent, terwijl het meer controle geeft over het de programma's dan bij een normale install. Installeren met de deb-file en programmanaam --help geeft alle opties weer.
marzzz@laptop:~$ couchpotato --help
usage: couchpotato --option --environment=value
    OPTIONS:
        --daemon        : run in background
        --quiet         : run silent

    ENVIRONMENT:        : Example --configdir=/path/to/config.ini.
        --config=       : Set full path to config.ini,
                          defaults to ~/.couchpotato/config.ini.
        --datadir=      : Set folder to store database and thumbs, 
                          defaults to ~/.couchpotato.
        --pidfile=      : Set full path to pidfile, 
                          defaults to /var/run/couchpotato/couchpotato.pid.

        --startup       : Edit /etc/default/couchpotato to autostart 
                          couchpotato when this machine starts.

        --help          : print this help message.

    DAEMON OPTIONS:     : Handle the daemon that runs as a service
        --startup       : Edit /etc/default/couchpotato to autostart 
                          couchpotato when this machine starts.
        --start         : Start the daemon.
        --stop          : Stop the daemon.
        --restart       : Restart the daemon.
        --force-reload  : Same as --restart.
        --force-update  : Update couchpotato from GitHub

Hier zijn de .deb'. Wellicht more to come. Downloaden en dubbelklikken, of op een headless server installeren met sudo dpkg -i programmanaam.deb.
http://dl.dropbox.com/u/18712538/LaSi_repo/sickbeard.deb
http://dl.dropbox.com/u/18712538/LaSi_repo/couchpotato.deb
http://dl.dropbox.com/u/18712538/LaSi_repo/headphones.deb

Volgende: [s]Periscope[/s] Subliminal! 10-'11 [s]Periscope[/s] Subliminal!
Volgende: NZB's streamen in XBMC 08-'11 NZB's streamen in XBMC

Reacties


Door Tweakers user Peetz0r, zaterdag 8 oktober 2011 13:47

een windows installatiefile, wat vaak .exe of .msi (is dit nog wel zo?) files zijn. Deze hoef je slechts te downloaden en dubbelklikken en de applicatie is geinstalleerd.
Dat is idd zo voor de Chrome en Opera installers, maar de meeste programma's hebben nog steeds aparte stappen:
- "welkom" (tijdverspilling)
- licentie (wie leest deze)
- locatie (wie veranderd dat nou eigenlijk?)
- snelkoppelingen in menu start (deze verander je echt nooit)
- vaak duurt de installatie nog redelijk lang omdat er duizend dingen in het register gezet worden
- "einde" (meer tijdverspilling)

En dan te bedenken dat niet elke installer hetzelfde is, alhoewel ze wel op elkaar lijken. En soms heb je nog aparte stappen voor registratie/serials/extra onderdelen/bestandstypes. Zo heb je:
- Windows installer (vaak .msi bestanden, erg traag)
- InstallShield (ook erg traag)
- Nullsoft Installer System (snel, en geeft informatie over wat hij precies doet)
- WISE installer (erg ouderwets uiterlijk)
- Custom installers zoals voor Chrome en Opera (vaak veel simpeler en sneller, daarom worden ze ook gemaakt)
- meer...

Ik wete niet waarom windowsgebruikers volhouden dat dit systeem "simpel" is, maar volgens mij is dat puur omdat ze dit gewend zijn. Het pakketbeheer in de meeste linux distro's, OS X en smartphone OSen zijn zeker vele malen beter, maar "anders", en dat is voor veel mensen lastig.

[Reactie gewijzigd op zaterdag 8 oktober 2011 13:53]


Door Tweakers user croontje, zaterdag 8 oktober 2011 14:16

Waarom zou je locatie en snelkoppelingen niet veranderen? Ik schakel altijd de snelkoppeling op bureaublad uit. En mensen met een SSD kunnen een reden hebben om de locatie te veranderen. Anderen natuurlijk ook maar SSD eigenaars komen het snelst in me op :)

Door Tweakers user Patriot, zaterdag 8 oktober 2011 15:08

P.E.T.E.R. schreef op zaterdag 08 oktober 2011 @ 13:47:
[...]
Dat is idd zo voor de Chrome en Opera installers, maar de meeste programma's hebben nog steeds aparte stappen:
- "welkom" (tijdverspilling)
Lolwut, echt waar? Tijdverspilling? Zo kun je lang doorgaan, op die manier is een heleboel wat je in een OS ziet (in *ieder* OS) 'tijdverspilling'.
- licentie (wie leest deze)
Tsja, je moet mensen nu eenmaal inlichten over hun rechten. Dat dat op dit moment op een slechte manier gebeurd ben ik met je eens, maar de licenties dan maar helemaal niet laten zien vind ik nog slechter.
- locatie (wie veranderd dat nou eigenlijk?)
Ik. Dat is niet zo heel gek hoor. Sommige applicaties mogen op een andere schijf bijv.
- snelkoppelingen in menu start (deze verander je echt nooit)
Oh? Ik zet dingen zelden in het menu start/op mijn desktop, ik moet hier altijd het vinkje weghalen.
- vaak duurt de installatie nog redelijk lang omdat er duizend dingen in het register gezet worden
Dit is wel een heel erg willekeurig 'argument'. Je roept nu gewoon maar wat. Tenzij je concreet bewijs hebt dat installers op Windows OS'en langzaam zijn vanwege de vele wijzigingen aan het OS.
- "einde" (meer tijdverspilling)
Dat is niet bepaald tijdverspilling. Zo weet je in ieder geval dat de installatie goed is verlopen. Als de installer opeens niet meer draait zou je niet weten of dat is vanwege een fout, of omdat alles goed is verlopen.
En dan te bedenken dat niet elke installer hetzelfde is, alhoewel ze wel op elkaar lijken. En soms heb je nog aparte stappen voor registratie/serials/extra onderdelen/bestandstypes. Zo heb je:
- Windows installer (vaak .msi bestanden, erg traag)
- InstallShield (ook erg traag)
- Nullsoft Installer System (snel, en geeft informatie over wat hij precies doet)
- WISE installer (erg ouderwets uiterlijk)
- Custom installers zoals voor Chrome en Opera (vaak veel simpeler en sneller, daarom worden ze ook gemaakt)
- meer...
Het principe is altijd hetzelfde, dus wat is het probleem?
Ik wete niet waarom windowsgebruikers volhouden dat dit systeem "simpel" is, maar volgens mij is dat puur omdat ze dit gewend zijn. Het pakketbeheer in de meeste linux distro's, OS X en smartphone OSen zijn zeker vele malen beter, maar "anders", en dat is voor veel mensen lastig.
Welke concrete argumenten zijn er nou die bewijzen dat de manier van installatie op Windows zoveel slechter is dan bij andere besturingssystemen?

EDIT: En dan vanuit het oogpunt van de gebruiker hŤ, niet komen met technische argumenten zoals 'het register is traag/lomp/whatever', dat maakt voor de gebruiker niks uit.

[Reactie gewijzigd op zaterdag 8 oktober 2011 15:10]


Door Tweakers user ZpAz, zaterdag 8 oktober 2011 17:26

Maar wat is nu makkelijker, of net zo makkelijk, als een windows installatiefile, wat vaak .exe of .msi (is dit nog wel zo?) files zijn. Deze hoef je slechts te downloaden en dubbelklikken en de applicatie is geinstalleerd
.app bestanden :+


Door Tweakers user Lrrr, zaterdag 8 oktober 2011 21:07

Patriot schreef op zaterdag 08 oktober 2011 @ 15:08:
[...]


Lolwut, echt waar? Tijdverspilling? Zo kun je lang doorgaan, op die manier is een heleboel wat je in een OS ziet (in *ieder* OS) 'tijdverspilling'.


[...]


Tsja, je moet mensen nu eenmaal inlichten over hun rechten. Dat dat op dit moment op een slechte manier gebeurd ben ik met je eens, maar de licenties dan maar helemaal niet laten zien vind ik nog slechter.


[...]


Ik. Dat is niet zo heel gek hoor. Sommige applicaties mogen op een andere schijf bijv.


[...]


Oh? Ik zet dingen zelden in het menu start/op mijn desktop, ik moet hier altijd het vinkje weghalen.


[...]


Dit is wel een heel erg willekeurig 'argument'. Je roept nu gewoon maar wat. Tenzij je concreet bewijs hebt dat installers op Windows OS'en langzaam zijn vanwege de vele wijzigingen aan het OS.


[...]


Dat is niet bepaald tijdverspilling. Zo weet je in ieder geval dat de installatie goed is verlopen. Als de installer opeens niet meer draait zou je niet weten of dat is vanwege een fout, of omdat alles goed is verlopen.
Die hele installatie is tijdverspilling. Vergelijk het Windows-proces maar eens met het proces voor een Mac-applicatie:

1. Jij downloadt app als .zip, Mac OS X pakt deze automatisch uit (nu staat de app in je Downloads-map)
2. Jij sleept de app heen waar je hem wilt hebben (waarschijnlijk /Programma's, maar hoeft niet per sť)
3. Als je een alias wilt maak je die (Mac-equivalent van een snelkoppeling, maar vaak niet nodig omdat de app toch in /Programma's staat)
4. Als je de app voor de eerste keer start wordt de licentie weergegeven

Door Tweakers user ZpAz, zaterdag 8 oktober 2011 21:14

Downloaden, dubbelklikken.... er is geen stap 3. Een .app bestand is een 'package' op zich, de executables en alle extra bestanden die het programma nodig heeft zit in zichzelf. Je kan het dus gewoon verplaatsen als je wilt, en wil je het verwijderen sleep je het naar de prullenmand. Je kan ze zelfs verplaatsen ook al staat het programma open zonder dat dit problemen oplevert.

http://cl.ly/Amgj

---

Om ontopic te blijven, Sickbeard is geniaal, gebruik het met plezier.

[Reactie gewijzigd op zaterdag 8 oktober 2011 21:17]


Door Tweakers user wheez50, zondag 9 oktober 2011 01:27

Grote verschil tussen linux en windows is dat de laatste de optie heeft om domweg op volgende te klikken. Het is grafisch overduidelijk waar je zijn moet. En soms is dat ook gewoon heerlijk (domweg) gemakkelijk :)

Toch lees ik je blogs met plezier. Al ben ik best wel fan van windows7 - linux trekt soms gewoon ook (in m'n minder 'domme' periodes dan)...

Door Tweakers user Mar2zz, zondag 9 oktober 2011 08:06

ZpAz schreef op zaterdag 08 oktober 2011 @ 21:14:
[...]
Downloaden, dubbelklikken.... er is geen stap 3. Een .app bestand is een 'package' op zich, de executables en alle extra bestanden die het programma nodig heeft zit in zichzelf. Je kan het dus gewoon verplaatsen als je wilt, en wil je het verwijderen sleep je het naar de prullenmand. Je kan ze zelfs verplaatsen ook al staat het programma open zonder dat dit problemen oplevert.

http://cl.ly/Amgj

---

Om ontopic te blijven, Sickbeard is geniaal, gebruik het met plezier.
.app is toch ook ontopic, de blog gaat over packaging toch? Hoe werkt dat met .app en opstartbestanden? Als je iets wilt toevoegen aan start @ boot? Het lijkt een beetje op Portable Apps door dat verslepen. En heb je in OSX overal standaard toegang of ben je beperkt tot je eigen userspace, en daarbuiten ook root-achtig iets? (ik heb geen apple-apparaten en zal ze ook nooit gaan hebben, maar ben toch nieuwsgierig.

Door Tweakers user ZpAz, zondag 9 oktober 2011 12:33

Mar2zz schreef op zondag 09 oktober 2011 @ 08:06:
[...]


.app is toch ook ontopic, de blog gaat over packaging toch?
.app bestanden zijn eigenlijk gewoon folders, met hierin een .plist bestand (configuratie) welke in XML formaat of binairy formaat is opgebouwd. Hierin staat o.a het relatieve pad naar de executable binnen de .app, de architectuur waar het op draait (Intel, PowerPC, beiden (Universal)) en het relatieve pad naar het icoontje e.d.

Binnen OSX wordt dit herkent en wordt er dus het juiste icoontje getoond, en bij het dubbelklikken wordt dit uitgevoerd.
Hoe werkt dat met .app en opstartbestanden? Als je iets wilt toevoegen aan start @ boot?
Je kan via een GUI gewoon makkelijk .app bestanden toevoegen bij het opstarten. Ook heb je een daemon achtige omgeving als in Linux. Maar daar heb je als 'non geek' nooit wat mee te doen.
Het lijkt een beetje op Portable Apps door dat verslepen. En heb je in OSX overal standaard toegang of ben je beperkt tot je eigen userspace, en daarbuiten ook root-achtig iets? (ik heb geen apple-apparaten en zal ze ook nooit gaan hebben, maar ben toch nieuwsgierig.
Elke gebruiker heeft zijn eigen userspace (/Users/%username/) hierin staat o.a Documents, Desktop, Applications e.d) ook heb je de globale Application folder, hier heb je root voor nodig. Als in de globale Application folder iets staat staat deze bij iedereen in zijn Applications folder. Zo kan je ťťn programma met meerdere gebruikers delen.

OSX is gebaseerd op BSD en NeXTStep (NeXTStep is een OS ontwikkeld bij NeXT waar Steve Jobs tussen 1985 en 1996 CEO was) welke later is overgekocht door Apple, en zo kwam Steve Jobs terug bij Apple. Veel dingen uit NeXTStep zijn overgenomen in OSX).

OSX is een officieel Unix gecertificeerd OS. Dus als je je weg in Linux kan vinden heb je ook geen problemen om je weg te vinden in OSX. Een aantal van deze folders zal je dan ook bekend voorkomen.

Een ander voordeel hiervan is dat open-source projecten als bijvoorbeeld Wine vaak zonder problemen te compilen zijn op OSX. :)

[Reactie gewijzigd op zondag 9 oktober 2011 13:07]


Door Tweakers user i-chat, zondag 9 oktober 2011 15:35

waar ik bij osx altijd vragen over heb is, hoe werken die .app's nu echt, moet je voor elke app een eigen subset aan libs gebruiken (kan ook onder linux via /optware achtige constructies, waar ik minder fan van ben... of zijn apps meer .net .jar achtige constructies waar dus alle libs in het framwork worden opgenomen...

misschien als er ooit een openOSX zou komen dat ik er eens naar zou wille kijken, (uit beroeps-nieuwschierigheid). maar een mac kopen om met osx te kunne spelen doet me de haren overeind komen. en net toen ik zo'n kaartje van psystar (toch?) overwoog werden die verboden...

of zou je osx in vbox kunnen draaien???

- om in te gaan op de exe versus deb / rpm vete. als elke installer in windows verplicht in MSI formaat was, dan zou ik daar nog mee kunnen leven - al mis ik dan nog steeds de centraal beheerde 'repositories' waarbij 1 centrale service in plaats van 150 verschillende om gaat met het updaten van je installatie.

dit is ECHT een van de grootste tekortkomingen van windows (voor mij).

Door Tweakers user ZpAz, zondag 9 oktober 2011 16:39

i-chat schreef op zondag 09 oktober 2011 @ 15:35:
waar ik bij osx altijd vragen over heb is, hoe werken die .app's nu echt, moet je voor elke app een eigen subset aan libs gebruiken (kan ook onder linux via /optware achtige constructies, waar ik minder fan van ben... of zijn apps meer .net .jar achtige constructies waar dus alle libs in het framwork worden opgenomen...
Over het algemeen worden de op OSX aanwezige applicaties met Cocoa (zeg maar een soort van .NET) gemaakt. Hierdoor kan je aanwezige librarys gebruiken (immers is Cocoa op elke Mac aanwezig).

Heb je extra library's nodig dan kan je deze gewoon bij je .app instoppen. Maar standaard zijn er al heel veel library's aanwezig op OSX om de meeste zaken af te handelen.
misschien als er ooit een openOSX zou komen dat ik er eens naar zou wille kijken, (uit beroeps-nieuwschierigheid). maar een mac kopen om met osx te kunne spelen doet me de haren overeind komen. en net toen ik zo'n kaartje van psystar (toch?) overwoog werden die verboden...

of zou je osx in vbox kunnen draaien???
Je kan OSX in Vmware draaien. En dat OSX enkel bij een Mac geleverd wordt is gewoon een andere bedrijfsvoering dan hoe bijvoorbeeld Windows het aanpakt. Beiden hebben ze voor een bepaalde strategie gekozen, beiden hebben ze hun voor en nadelen.

[Reactie gewijzigd op zondag 9 oktober 2011 16:40]


Reageren is niet meer mogelijk