Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Waarom wordt veel Linux software niet meteen ingepakt?  (gelezen 2080 keer)

Offline bijd3hand

  • Lid
Waarom wordt veel Linux software niet meteen ingepakt?
« Gepost op: 2012/09/30, 14:26:00 »
Het valt mij op, dat als er programmeurs met iets moois komen, dat ze dan voor Windows meestal wel netjes een installer publiceren, maar voor Linux verdommen om met een .rpm of .deb package te komen.

Dat is toch onhandig?

Ik vind dat source code, eigenlijk alleen geschikt is voor programmeurs, om zelf eens te neuzen of verbeteringen aan te brengen (als het open source is, meestal wel voor Linux).

Dat gecompile is altijd een heel gedoe, en maakt Linux minder toegankelijk voor de man/vrouw in de straat.

Of mis ik iets, wellicht dat programmeurs zelf hier eens toelichting op kunnen geven? :)


Offline niekn

  • Lid
    • omega-xis
Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #1 Gepost op: 2012/09/30, 14:44:27 »
een .deb is een installer!
als je die opent dan word het softwarecenter automatish gestart en kun je m met 1 druk op de knop installeren!
draai het eens om: bij windows moet je een compleet programma schrijven om je programma's te installeren en vervolgens weer een compleet programma om je programma te kunnen updaten!
in linux heb je een "package manager" een programma dat programma's installeert en updated.
een "package" komt in de vorm van een .deb of .rpm.
een .deb werkt als volgt:

een .deb is een ZIP-bestand waarin 2 mappen staan: DATA en CONTROL
in data staan alle files die geinstalleerd moeten worden al in de juiste mappen dus bij bijvoorbeeld firefox is dat:

firefox.deb
|
|-data
|      usr
|             share
|                    firefox (met daar alle datafiles in)
|             bin (met de launcher erin)
|-control
|            DEBIAN
|            scripts

in de control-folder zit een doodsimpel textbestandje, dat ziet er ongeveer zo uit:
Source: x264
Section: X11
Priority: extra
Maintainer: Andrew <webupd8@gmail.com>
Build-Depends: debhelper (>= 7), autotools-dev, libc6-i686, libldap-2.4-2, libsasl2-2, libtasn1-3, yasm, libgpg-error0, libgcrypt11, libkeyutils1, libidn11, libgnutls26, libk5crypto3, locales, libcurl3-gnutls, libkrb5support0, libkrb5-3, libgssapi-krb5-2, gawk
Standards-Version: 3.8.1
Homepage: http://www.videolan.org/developers/x264.html

Package: x264
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: x264 is a free library for encoding H264/AVC video streams.

in feite staat hier: ik ben pakket blah blah, ik heb blah blah nodig om te kunnen draaien, ik ben versie blah blah en ik ben gemaakt door blah blah

het klinkt allemaal heel ingewikkeld, maar het is in feite doodsimpel. en omdat het zo simpel werkt is het zo geniaal!
ik zeg wel eens vaker: ubuntu is eigenlijk een heel simpel besturingssysteem, maar je moet geniaal zijn om te snappen hoe simpel het eigenlijk is....

mocht je toch met sourcecode willen knommelen dan kun je t beste eerst build-essential en wat libraries installeren.
vervolgens moet je de compiler vertellen dat je wilt compileren met:
make && sudo make installdit alles in de terminal natuurlijk! sommige tools leveren standaard geen makefiles aan omdat dat voor problemen kan zorgen, meestal moet je dan eerst een script runnen om de juiste makefile aan te maken
meestal is dat iets als ./configure of cmake ..
« Laatst bewerkt op: 2012/09/30, 14:47:17 door niekn »

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #2 Gepost op: 2012/09/30, 14:45:01 »
Het is niet altijd source code, soms is het ook een .bin of .run welke je na rechtermuisknop --> Uitvoeren van bestand toestaan gewoon op kunt dubbelklikken om de installer te starten.

Waarom men niet de moeite neemt om een .rpm en .deb te maken? Simpel, tijd en moeite. DEB is nog wel generiek dus als je een .deb maakt zal ie vaak wel werken op Debian, Ubuntu en afgeleiden maar RPM is niet zo generiek. Een RPM gemaakt voor OpenSUSE werkt per definitie niet direct op Fedora of Mandriva/Mageia.

En dan heb ik het nog niet eens over andere pakketbeheerders zoals pisi (hoewel een .pisi maken niet moeilijker is dan een .deb maken) van Pardus.

@niekn: Een deb is geen installer, een deb is een installatiepakket. Een installer is zoiets als een .run waarbij je een installatiewizard hebt.

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #3 Gepost op: 2012/09/30, 18:10:02 »
Als iemand die cross-platform software levert, kan ik daar een toelichting op geven.

Ten eerste kan je van Windowsgebruikers niet verwachten dat ze een compiler, CMake, Qt, etc... geïnstalleerd hebben op hun systeem. Dus eventjes een hoop source code met een CMakeList dumpen en zeggen "trek je plan" is niet zo evident op Windows (ook al omdat het proces een stuk moeilijker is dan op Linux), terwijl op Linux "installeer cmake en libqt4-dev, doe cmake . && make && make install" al een pak eenvoudiger en alledaagser is.

Ten tweede is het maken van een installer op Windows papgemakkelijk. Ik kan knus vanuit mijn vertrouwde OS en editor (OS X en Vim respectievelijk) iets in elkaar kwakken wat hier op lijkt: https://github.com/SeySayux/mmm/blob/master/mmm.nsi . Zoals je kan zien niet meer dan een opsomming van alle bestanden.

Wil ik voor pakweg Ubuntu een pakket maken en op een PPA zetten, moet ik het volgende doen:
• Start mijn Ubuntu VM of erger, switch naar een andere computer.
• Check de broncode uit.
• Installeer een of ander dubieus scriptje, laat dat er over draaien — dit maakt een map "/debian" aan met een hoop metadata.
• Bouw en installeer het programma. Kijk waar bestanden worden geïnstalleerd. Kwak die lijst in een bestand onder /debian.
• Schrijf een file die vertelt wat de versie is van het programma, veranderingen aan het programma in deze versie, dependencies, build dependencies, reproduceerbare build-instructies en een hoop andere metadata. Waarschijnlijk mag je ook nog eventjes je stuk software in 2-3 pakketen splitsen (dev, lib en bin), doe dat voor die alle 3.
• Kijk of het werkt. Bouw het deb-pakket. Installeer het. Okee, ziet er goed uit.
• Download één of andere Ubuntu-only tool om je pakket naar de server van Launchpad te sturen. Vloek nog een beetje omdat je eerst nog een ssh-key en wat andere prul moet opzetten. Vloek nog wat omdat de instructies erg outdated waren en omdat twee verschillende sites verschillende instructies hebben. Tar alles up, en naar Launchpad.
• Krijg een mail van launchpad: build mislukt. Oeps, dependency vergeten, Launchpad heeft een iets andere build-environment, build-instructie lichtjes incorrect, or all of the above. Fix de bug, maak een nieuwe versie van het programma (maak hiervoor een entry in de changelog!), en probeer opnieuw.
• Herhaal totdat launchpad je programma built of totdat je opgeeft.

Proficiat, je hebt nu een installer voor 1 versie van Ubuntu! Nu nog voor de andere ondersteunde versies, x86 en x64 (probeer maar eens een x86-pakket op x64 te gebruiken) en misschien ook nog Mint, Fedora, SuSE, Mandriva, Debian, Gentoo...

Op dat moment zeg je "screw it, dit is de installatieprodedure voor Linux: git clone http://github.com/SeySayux/libsylph.git; cd libsylph; cmake . && make && make install"

Dit is een waargebeurd verhaal.

- SeySayux
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline niekn

  • Lid
    • omega-xis
Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #4 Gepost op: 2012/09/30, 18:48:11 »
 (probeer maar eens een x86-pakket op x64 te gebruiken)

apt-get install pakketnaam:i386, sinds 11.04 is ubuntu namelijk multiarch, wat betekent dat je die zooi gewoon kunt installeren en dat hij ook alle afhankelijkheden installeert.

btw een debje maken is voor mij gewoon een map aanmaken, daar alle bestanden in dumpen, een control-file aanmaken en dan gewoon dpkg-deb -b <mapnaam> zo simpel als wat!
als je dan nog een snelkoppeling wilt, die staan gewoon in /usr/share/applications gewoon zo'n .desktop inkijken en de waarden aanpassen.
custom icoontje moet in /usr/share/icons

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #5 Gepost op: 2012/09/30, 19:33:41 »
(probeer maar eens een x86-pakket op x64 te gebruiken)

apt-get install pakketnaam:i386, sinds 11.04 is ubuntu namelijk multiarch, wat betekent dat je die zooi gewoon kunt installeren en dat hij ook alle afhankelijkheden installeert.
Dat multiarch werkt toch nog niet 100%... als hij je libc wilt gaan weggooien en zo, tja...

Citaat
btw een debje maken is voor mij gewoon een map aanmaken, daar alle bestanden in dumpen, een control-file aanmaken en dan gewoon dpkg-deb -b <mapnaam> zo simpel als wat!
als je dan nog een snelkoppeling wilt, die staan gewoon in /usr/share/applications gewoon zo'n .desktop inkijken en de waarden aanpassen.
custom icoontje moet in /usr/share/icons
Probleem is dat Launchpad niet wilt bouwen als je er niet ook nog een hoop andere crap in steekt behalve die control-file.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #6 Gepost op: 2012/09/30, 20:30:01 »
Ik heb al aardig wat :i386 binnen moeten halen tijdens bèta's maar libc is er nooit afgegaan.

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #7 Gepost op: 2012/09/30, 20:40:35 »
Sorry, ik en een paar mensen die ik ken hebben gewoon een slechte ervaring met multiarch, als jij een goede ervaring hebt, zoveel te beter. Kunnen we a.u.b. het fanboyisme stoppen en niet meer direct op mij springen "nee nee Ubuntu is perfect dat kan niet dat iets bij jouw broken is" en verder on-topic gaan?

Ik heb gewoon mijn persoonlijke ervaring gedeeld. Als hier iemand anders is die software schrijft die op Windows, Mac en Linux moet werken (zodat er ten minste een mate van vergelijkbaarheid is) met een andere ervaring, mag deze die hier ook posten. Door gewoon blik op oneindig te zetten en by all means Ubuntu te verdedigen, komen we niet veel verder.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #8 Gepost op: 2012/09/30, 20:57:18 »
Sorry, ik en een paar mensen die ik ken hebben gewoon een slechte ervaring met multiarch, als jij een goede ervaring hebt, zoveel te beter. Kunnen we a.u.b. het fanboyisme stoppen en niet meer direct op mij springen "nee nee Ubuntu is perfect dat kan niet dat iets bij jouw broken is" en verder on-topic gaan?

Ik heb gewoon mijn persoonlijke ervaring gedeeld. Als hier iemand anders is die software schrijft die op Windows, Mac en Linux moet werken (zodat er ten minste een mate van vergelijkbaarheid is) met een andere ervaring, mag deze die hier ook posten. Door gewoon blik op oneindig te zetten en by all means Ubuntu te verdedigen, komen we niet veel verder.

Ik deel ook alleen maar mijn persoonlijke ervaring. Jammer dat je mij als een fanboy ziet want de posts die ik hier op het forum heb dat ik ook graag met Mac OSX werk dat heb je kennelijk over het hoofd gelezen. Kan gebeuren :) Maar dan weet je het bij deze: ik werk met zowel Ubuntu Unity als Bodhi Linux als Mac OSX 10.8 en vind ze alledrie op hun eigen manier lekker werken :)

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #9 Gepost op: 2012/10/01, 11:41:26 »
Hoe komt eigenlijk dat er nog niemand een tool heeft geschreven die heel dat proces automatiseert?

Offline markba

  • Lid
    • http://markbaaijens.nl/
Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #10 Gepost op: 2012/10/01, 11:56:09 »
Hoe komt eigenlijk dat er nog niemand een tool heeft geschreven die heel dat proces automatiseert?
En waarom denk je dat dat al niet op die manier gebeurt dan? SeySayux beschrijft op zich correct de stappen die benodigd zijn en die stappen zijn makkelijk automatiseerbaar. Sterker nog, dat wordt al op grote schaal gedaan waarbij het zelfs zo is dat wijzigingen uit het revsisie-systeem automatisch kunnen leiden tot een nieuwe build, denk bv aan de daily-build's van testversies van Ubuntu: door komt geen mensenhand aan te pas, hoogstens ter controle/sturing.

Offline Pjotr

  • Lid
    • Makkelijke Linuxtips
Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #11 Gepost op: 2012/10/01, 12:36:41 »
De pakketbeheerders van de distributies doen dat verpakken al, met die (versies van) pakketten die ze van belang vinden voor hun distro.

Het is alleen de eindgebruiker die het moeilijk heeft, als hij buiten de pakketbronnen om wil gaan.... En dat zal voorlopig nog wel zo blijven, omdat het marktaandeel van Linux klein en versnipperd is.

Offline markba

  • Lid
    • http://markbaaijens.nl/
Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #12 Gepost op: 2012/10/01, 13:05:15 »
draai het eens om: bij windows moet je een compleet programma schrijven om je programma's te installeren en vervolgens weer een compleet programma om je programma te kunnen updaten!
Onder Windows is tegenwoordig de installatie-standaard een .msi-bestand. Dit is een bestand dat zich laat installeren met Windows Installer (standaard aanwezig vanaf XP). Uit zichzelf doet zo'n msi helemaal niks, het is eigenlijk een verzameling gegevens, gegroepeerd rondom tabellen (soort van SQL).

Citaat
in linux heb je een "package manager" een programma dat programma's installeert en updated.
Wat dat betreft prima te vergelijken met Linux waar je een .deb hebt (alleen data, ev.een post-install scriptje) en de installer-engine zelf (de package-installer). Eigenlijk is het gewoon hetzelfde, alleen heet het anders.

Het is alleen de eindgebruiker die het moeilijk heeft, als hij buiten de pakketbronnen om wil gaan....
Sinds we PPA's hebben, is het voor gebruikers juist heel gemakkelijk geworden, misschien wel té gemakkelijk...

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #13 Gepost op: 2012/10/01, 13:53:21 »
Het probleem dat ik hier wil aanhalen is dat je bij een PPA een hele hoop metadata in je code moet steken, en dan heb je ook nog alleen maar een build voor één architectuur van één versie van één distro (Ubuntu). Als iemand me kan wijzen naar een script dat gemakkelijk installers kan maken die op alle distro's werken of pakketten voor deze verschillende distro's kan outputten vertrekkende van één bestand met zo min mogelijk metadata zonder dat ik al deze verschillende distributies afzonderlijk geïnstalleerd moet hebben, mag dat altijd.
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #14 Gepost op: 2012/10/01, 15:49:11 »
Het probleem dat ik hier wil aanhalen is dat je bij een PPA een hele hoop metadata in je code moet steken, en dan heb je ook nog alleen maar een build voor één architectuur van één versie van één distro (Ubuntu). Als iemand me kan wijzen naar een script dat gemakkelijk installers kan maken die op alle distro's werken of pakketten voor deze verschillende distro's kan outputten vertrekkende van één bestand met zo min mogelijk metadata zonder dat ik al deze verschillende distributies afzonderlijk geïnstalleerd moet hebben, mag dat altijd.

http://installbuilder.bitrock.com/installbuilder.html

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #15 Gepost op: 2012/10/01, 18:43:08 »
[...] free evalutation [...]

Citaat
[...] XML [...]

Citaat
[...] Java [...]

Citaat
[...] Enterprise [...]

Tenzij meneer Vistaus gepland had om de genereuze som van $2000 aan LibSylph te doneren, vrees ik niet dat ik dit als een oplossing kan beschouwen. ;) (misschien de volgende keer niet het eerste Googleresultaat linken zonder te lezen?)
« Laatst bewerkt op: 2012/10/01, 18:49:40 door SeySayux »
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #16 Gepost op: 2012/10/01, 23:21:49 »
Pardon? Niks eerste Google-resultaat, ik ken Installbuilder omdat Dirk Dashing (een populaire Linux-game) dat gebruikt... http://www.dirkdashing.com

Daarbij heb je een ander stukje ook gemist:
http://installbuilder.bitrock.com/purchase.html
"In addition to our standard commercial licenses, we offer special licenses for academic purposes and open source projects."

« Laatst bewerkt op: 2012/10/01, 23:23:22 door Vistaus »

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #17 Gepost op: 2012/10/02, 11:27:15 »
Pardon? Niks eerste Google-resultaat, ik ken Installbuilder omdat Dirk Dashing (een populaire Linux-game) dat gebruikt... http://www.dirkdashing.com

Daarbij heb je een ander stukje ook gemist:
http://installbuilder.bitrock.com/purchase.html
"In addition to our standard commercial licenses, we offer special licenses for academic purposes and open source projects."


Sorry, dat had ik niet gezien, ik dacht dat je hier zomaar iets neerkwakte uit de aanname dat ik geen research naar dit onderwerp had gedaan (heb ik dus wel gedaan, en ben Bitnami Installbuilder nergens tegen gekomen).

Dan nog steeds is het iets met een GUI in Java en een hoop aan XML-files. Ik denk niet dat je veel Linuxdevs (mij incluis) daar warm voor gaan lopen...
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: Waarom wordt veel Linux software niet meteen ingepakt?
« Reactie #18 Gepost op: 2012/10/02, 12:04:30 »
Citaat
Dan nog steeds is het iets met een GUI in Java en een hoop aan XML-files. Ik denk niet dat je veel Linuxdevs (mij incluis) daar warm voor gaan lopen...

Nuja, die van Bitrock heeft natuurlijk geen GUI in Java, maar wat is het probleem met XML-files?