Kompilera Linux program och köra på OS X?

Tråden skapades och har fått 15 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Hedemora
  • 2006-12-04 10:06

Ja... rubriken säger allt.
Har läst på några ställen att gcc finns i systemet redan från början. Finns det? (Är inte hemma men min Macbook Pro )
Är det Xcode som gäller annars?

Det blir väl främst program att köra i terminalen, men det kan hända att det blir något X11 program också...

Vad ska man ladda ner för att det bara ska vara att tanka ner källkoden och köra "./configure", "make" och "make install"?

  • Medlem
  • Stockholm
  • 2006-12-04 10:19

Ja, gcc 4 finns med!

Titta gärna på DarwinPorts och Fink för två projekt som förenklar portande av öppen källkod till Mac.

Det är inte säkert att configure, make, make install "bara funkar", det beror lite på hur portabla programmen är... Men väldigt mycket fungerar...

  • Medlem
  • Gävle
  • 2006-12-04 10:41

Jag tror att du måste installera Developer Tools för att du ska få gcc, dom ska ligga på DVD med ditt OS på. Eller en extraskiva brevid.

Ursprungligen av emil.s:

Ja... rubriken säger allt.
Har läst på några ställen att gcc finns i systemet redan från början. Finns det? (Är inte hemma men min Macbook Pro )
Är det Xcode som gäller annars?

gcc är inte förinstallerat från fabrik utan är en separat installation som ingår i XCode Tools.

Citat:

Det blir väl främst program att köra i terminalen, men det kan hända att det blir något X11 program också...

Vad ska man ladda ner för att det bara ska vara att tanka ner källkoden och köra "./configure", "make" och "make install"?

XCode Tools + alla eventuella kodbibliotek och headerfiler det aktuella programmet använder sig av. Men de flesta använder pakethanteraren MacPorts (eller Fink) i stället, så slipper man hålla reda på beroendesörjan själv.

  • Medlem
  • Hedemora
  • 2006-12-04 12:53

Jag installerar väl Xcode när jag kommer hem...

Fink och DarwinPorts! Pakethanterare för OS X! Härligt härligt.
Men vad är bäst? Vilken har flest paket? Fördelar/Nackdelar med dem?

Eller kan man köra med båda?

  • Medlem
  • Norrköping
  • 2006-12-04 19:02

Man kan köra med både Darwinports och Fink på samma installation av OSX. Fink har mer och krångligare documentation tycker jag. Darwinports är mer rakt på i sin documentation. Vilken som har mest paket vet jag ej i huvudet..

  • Medlem
  • Hedemora
  • 2006-12-04 21:20

Löste det själv:

Ursprungligen av DarwinProject:

There are currently about 3420 completed and usable ports, with more being added on a regular basis. You can track recently added ports by subscribing to the cvs-darwinports-all mailing list.

Ursprungligen av FINK:

Found 7268 packages:

Men DarwinProject hade fler "roliga" paket.

Behöver man Xcode om man har någon pakethanterare?
Eller är det lika bra att installera via pakethanteraren?

EDIT:

Also required is the installation of Apple's XCode (available as a separate install from your OS X CDs or DVD, or from Apple's Developer site: http://developer.apple.com/).

Återkommer väl om jag får några problem.

Senast redigerat 2006-12-04 21:52
  • Medlem
  • Hedemora
  • 2006-12-04 23:47

Sådär. Har installerat Xcode, FINK och DarwinPorts.

Men:
Går det att få FINK och DP att synca med varandra?
Jag har installerat ett program som krävde GTK med DP, och nu vill jag installera ett med FINK. Och då lär jag installera GTK igen med det...

Går det att komma förbi på något sätt?

Ursprungligen av emil.s:

Går det att få FINK och DP att synca med varandra?

Nej, nej, nej. Det är att be om problem. Tänk inte ens tanken.

Citat:

Jag har installerat ett program som krävde GTK med DP, och nu vill jag installera ett med FINK. Och då lär jag installera GTK igen med det...

Går det att komma förbi på något sätt?

Nej. Välj en pakethanterare och kör med den. Det är en extremt dålig idé att röra ihop två pakethanterare eftersom själva idén med en felsäker pakethanterare som har benhård koll på vad som är installerat, vad som behöver installeras och vilka paket som kan hamna i konflikt, faller ihop fullständigt om man gör det.

  • Medlem
  • Hedemora
  • 2006-12-05 17:12
Ursprungligen av Samuel K:

Nej, nej, nej. Det är att be om problem. Tänk inte ens tanken.

Nej. Välj en pakethanterare och kör med den. Det är en extremt dålig idé att röra ihop två pakethanterare eftersom själva idén med en felsäker pakethanterare som har benhård koll på vad som är installerat, vad som behöver installeras och vilka paket som kan hamna i konflikt, faller ihop fullständigt om man gör det.

Som jag täkte då.
Aja, får väl fixa de paket som fattas själv...

Tyvärr brukar det vara bästa sättet. Men MacPorts-folket tar gärna emot förslag på nya paket, så populära paket brukar förr eller senare läggas till - iaf om någon har tid att skapa en Portfile och den tar sig igenom den noggranna kvalitetskontrollen. Är man riktigt ambitiös kan man skapa en portfile själv och skicka in den, det är faktiskt ganska enkelt men för egen del faller det på det där med ambitionsnivån

  • Medlem
  • Hedemora
  • 2006-12-05 22:35
Ursprungligen av Samuel K:

Tyvärr brukar det vara bästa sättet. Men MacPorts-folket tar gärna emot förslag på nya paket, så populära paket brukar förr eller senare läggas till - iaf om någon har tid att skapa en Portfile och den tar sig igenom den noggranna kvalitetskontrollen. Är man riktigt ambitiös kan man skapa en portfile själv och skicka in den, det är faktiskt ganska enkelt men för egen del faller det på det där med ambitionsnivån

Finfint. Gillar när man kan lämna in förslag, och när det är "folket" som bygger grejjerna.

Läste lite på internet i allafall. Kom fram till att DP är klart bättre än FINK, även om det är mindre paket...

Ursprungligen av Samuel K:

Nej, nej, nej. Det är att be om problem. Tänk inte ens tanken.

Nej. Välj en pakethanterare och kör med den. Det är en extremt dålig idé att röra ihop två pakethanterare eftersom själva idén med en felsäker pakethanterare som har benhård koll på vad som är installerat, vad som behöver installeras och vilka paket som kan hamna i konflikt, faller ihop fullständigt om man gör det.

Får man dra in rena Linuxfrågor här? Jag är själv rätt så mycket nybörjare på Linux, och har stött på patrull just på pakethanteringen. Så fort jag ska installera precis vad som helst som inte följer med så fattas det en massa paket som jag då försöker leta upp och installera själv på något vis. Är det meningen att man ska begränsa sig till det som ingår i disten? Men då kan man ju nästan inte göra någonting.

Jag försökte få in Supertux i min CentOS-installation, men det var hopplöst. Det var paket som berodde på paket i oändligheten. På Macen är det bara att tuta och köra.

Enklast är det definitivt om man håller sig till de paket som disten tillhandahåller, och det är därför man har så stor fördel av att välja t.ex. Ubuntu eller någon annan mainstreamdist. Lika viktigt som antalet paket är kvalitetskontrollen, eftersom inga paket ska kunna hamna i konflikt med varandra. Det kan i sin tur leda till att en enkel programuppdatering kvaddar ett fullt fungerande system, vilket helt enkelt inte får hända. Pakethanteraren bör också kunna hämta och installera dependencies automatiskt, annars blir man galen efter ett tag.

När jag själv behöver installera något som inte finns som paket (och därför måste kompileras manuellt) ser jag alltid till att ange --prefix=/opt som argument till configure-skriptet. Då blir programvaran i fråga isolerad från /usr så kan pakethanteraren behålla kontrollen över den katalogen. Alternativt kan man installera under /usr/local, men eftersom bl.a. OpenBSD installerar en del saker där känns /opt som ett säkrare val.

/opt som i optional alltså? Det har jag inte sett förr. Är det rentav så att det finns en skog av olika konventioner för icke-standard-installationer?

  • Medlem
  • Hedemora
  • 2006-12-12 10:23
Ursprungligen av Ingemar Ragnemalm:

/opt som i optional alltså? Det har jag inte sett förr. Är det rentav så att det finns en skog av olika konventioner för icke-standard-installationer?

I linux är det väl mer eller mindre standard att man lägger program man kompilerat själv i /opt.
Även riktigt udda program och program som av annan anledning behöver ligga lättåtkommligt eller för sig själva brukar hamna där.

EDIT:
http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/index.html

1
Bevaka tråden