Installera gcc i linux

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
bobobo
Inlägg: 678
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Installera gcc i linux

Inlägg av bobobo »

Hej
Jag är nybörjare på linux!

Jag har en industridator Celeron 600Mhz som kör linux.
Jag vet inte om den är baserad på någon vanlig distribution eller helt hemkokt av tillverkaren (Wago). Det enda jag vet är "Linux 2.6 med RT-Preempt patch"
Den verkar iallafall vara ganska strippad med bara det viktigaste kvar i operativet. Tror hela linuxinstallationen inkl. tillämpningsprogrammet Codesys soft-PLC ligger på c:a 40Mb (om jag läser "df" rätt)

Min plan är att försöka installera MySQL och Nagios (nätverksmonitor) på denna, får se om prestandan räcker...
MySQL har jag hittat färdigkompilerad som tar.gz-fil och en tydlig installationsanvisning så det hoppas jag att jag lyckas med.

Men Nagios hittar jag bara som source och några ganska otydliga installationsanvisningar så det kan bli betydligt värre. Till att börja med måste jag då ha gcc och det kan jag inte hitta i min burk.

Så hur installerar jag Gcc? Ipkg har jag hittat som pakethanterare i min linux, vet inte om det ligger någon mer. Men jag kan inte hitta gcc i ipkg paket för x86 eftersom ipkg mest verkar användas i NASar och routers.

Eller är det kanske enklare (alls möjligt?) att installera en vanlig linux i en desktop och kompilera nagios där för att sedan föra över till Wago'n?
esn
Inlägg: 149
Blev medlem: 27 juli 2009, 10:28:13
Ort: Norrköping
Kontakt:

Re: Installera gcc i linux

Inlägg av esn »

Du kanske kan sköta kompileringen på en annan burk, så slipper du lägga in utv-miljö på den lilla burken.
bobobo
Inlägg: 678
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Re: Installera gcc i linux

Inlägg av bobobo »

Jo jag funderade också på om det var en enklare möjlighet. Jag la till det med en edit av min post precis efter att jag postat...
Scorpiion
Inlägg: 380
Blev medlem: 24 januari 2008, 20:56:06
Ort: Umeå

Re: Installera gcc i linux

Inlägg av Scorpiion »

Installera Linux på en separat dator och testa kompilera ett program där som du sedan testar på Celeron datorn. Beroende på vad du har för andra dator så kan det funka direkt eller så måste du använda någon/några parmetrar för att det ska funka. Om du har en lite äldre bärbar så har många såna Celeron processor tror jag och då funkar det kanske rakt av. Är inte helt säker att naigos fungerar felfritt dock, är externa bibliotek som kan ställa till det, men är inte helt säker. Går alltid att fixa men det kan ju gå lätt eller mindre enkelt.. :P

Om du vill ha något program att testa med så skulle jag kunna kompilera något åt dig, min bärbara har en Celeron processor. Men då måste du ju lita på att programmet jag ger dig inte raderar din dator.... Jag skulle aldrig göra något sådant, men jag vill ändå göra dig uppmärksam på att det är alltid en risk att köra en program som man inte riktigt vet vad det är...

Om du installerar Ubuntu, så kan du sedan skriva kommandot "sudo apt-get install build-essential", och då kommer i princip allt du behöver för att kompilera (de flesta) program att installeras.

Sen som första testprogram kan du ju kompilera ett "Hello World!": (Vet inte hur erfaren du är på programmering)

Kod: Markera allt

#include <stdio.h>

int main(int argc, char **argv) {
  printf("Hello World!\n");
  return 0;
}
För att kompilera detta under Linux (och filen heter Hello.c) så skriver du detta i samma mapp som filen ligger:

gcc Hello.c -o Hello
("-o Hello" är namnet på den exekrevbara filen, om man inte skriver det så skapas en fil som heter "a.out" istället)

I övrigt så är det aldrig fel att ge lite extra info om datorn, du kan få info datorn och processorn genom att köra dessa kommandon.

"uname -a"
"cat /proc/cpuinfo"
bobobo
Inlägg: 678
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Re: Installera gcc i linux

Inlägg av bobobo »

Tack för svaren!

Om jag kompilerar på en annan maskin, hur mycket optimering och liknande stoppar kompilatorn in för den specifika processorn? dvs utöver att det är rätt "familj" intel 686. (Det kanske var just detta Scorpiion menade med att testa och se om det funkar?)
Avgör kompilatorn detta utifrån cpuinfo enligt nedan?
Spelar det någon roll om jag installerar min linux för kompileringen på min gamla desktop Pentium 4 eller på min vanliga arbetsdator med core i5?

Kod: Markera allt

root@WAGO-IO-IPC:~ uname -a
Linux WAGO-IO-IPC 2.6.24.7-rt17 #1 PREEMPT RT Mon Aug 17 12:49:46 CEST 2009 i686 unknown


root@WAGO-IO-IPC:~ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 9
model name      : Intel(R) Celeron(R) M processor          600MHz
stepping        : 5
cpu MHz         : 599.943
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 tm pbe bts
bogomips        : 1200.73
clflush size    : 64
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43191
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Installera gcc i linux

Inlägg av sodjan »

> hur mycket optimering och liknande stoppar kompilatorn in för den specifika processorn?

Dels brukar det finnas ett "default" läge, dels kan man alltid be
kompilatorn att göra som man vill med olika optimerings-switchar
i kommandot. Dokumentationen till den aktuella kompilatorn borde
ge ett klart och tydligt svar på det.
GFEF
Inlägg: 2371
Blev medlem: 4 december 2004, 18:44:04

Re: Installera gcc i linux

Inlägg av GFEF »

bobobo
>Om jag kompilerar på en annan maskin, hur mycke
>optimering och liknande stoppar kompilatorn in för den
>specifika processorn?

Sök på "Cross compiler"

http://en.wikipedia.org/wiki/Cross_compiler

http://www.cowlark.com/2009-07-04-building-gcc/

http://www.scratchbox.org/

Att skapa ett körbart program för en mindre äldre
"Intel(R) Celeron(R) M processor" helt säkert utförbart.

Men enket att göra ? Knappast troligt.....
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43191
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Installera gcc i linux

Inlägg av sodjan »

Nu så är väl begreppet "cross compiler" mer rellevant om man t.ex
har en kompilator som i sig körs på (t.ex) en Power maskin men som
genererar kod för (t.ex) en Intel plattform. I det nu aktuella fallet så är
det ju i botten kompatibla processorer och antagligen går det att bygga
kod som går å de flesta av dagens (och gårdagens) Intel processorer.
Annars vore det ganska svårt att sälja programpaket som körs på Celeron,
Core, en AMD processor o.s.v. "out of the box".

Sen så har de flesta kompilatorer switchar för att specifikt optimera mot
en variant/version av en processorserie (t.ex Intel x86), men det har ingenting
eller i alla fall mycket lite med "cross compilation" att göra.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45428
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Installera gcc i linux

Inlägg av TomasL »

En annan sak att tänka på, om det är en hårdbantad installation, så saknar du säkert en hel del libbar, vilket gör det omöjligt att kompilera rakt av.
I det läget kanske du måste länka libbarna statiskt, och kompilera in dem i koden.
Vissa libbar är dessutom fullständigt inkompatibla med vissa kärnor, och försöker man köra dessa, så kraschar allt.

Vad du får undersöka är helt enkelt vilka libbar behöver du, vilka versioner finns, och är de kompatibla med ditt nuvarande system.
Samma gäller MySQL, finns inga garantier att det fungerar, även om det är färdigkompilerat, dessutom troligen med dynamisk länkning av libbarna.

Kör
dmesg | head -1
eller
cat /proc/version
eller
cat /etc/issue

Då bör du få reda på vilken dist du kör
bobobo
Inlägg: 678
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Re: Installera gcc i linux

Inlägg av bobobo »

Jo jag har väl misstänkt att diverse bibliotek också kan ställa till det men jag vet inte var jag skall leta efter vad som krävs respektive vad jag har.

Kod: Markera allt

ls /lib/

ld-2.5.so                  libgcc_s.so.1              libnss_dns.so.2            librt.so.1
ld-linux.so.2              libkbus.so                 libnss_files-2.5.so        libsram.so
libModbus-0.9.17.so.1      libkbus.so.0               libnss_files.so.2          libsram.so.0
libModbus-0.9.17.so.1.0.0  libkbus.so.0.0.0           libnss_hesiod-2.5.so       libsram.so.0.0.0
libModbus.a                libm-2.5.so                libnss_hesiod.so.2         libsysfs.so
libModbus.lai              libm.so.6                  libnss_nis-2.5.so          libsysfs.so.2
libModbus.so               libmisc.so                 libnss_nis.so.2            libsysfs.so.2.0.1
libc-2.5.so                libmisc.so.0               libnss_nisplus-2.5.so      libthread_db-1.0.so
libc.so.6                  libmisc.so.0.0.0           libnss_nisplus.so.2        libthread_db.so.1
libcrypt-2.5.so            libncurses.so              libpthread-2.5.so          libuio.so
libcrypt.so.1              libncurses.so.5            libpthread.so.0            libuio.so.0
libdl-2.5.so               libncurses.so.5.6          libreadline.so             libuio.so.0.0.0
libdl.so.2                 libnsl-2.5.so              libreadline.so.5           libutil-2.5.so
libec1.so                  libnsl.so.1                libreadline.so.5.2         libutil.so.1
libec1.so.0                libnss_compat-2.5.so       libresolv-2.5.so           modules
libec1.so.0.0.0            libnss_compat.so.2         libresolv.so.2
libgcc_s.so                libnss_dns-2.5.so          librt-2.5.so
Är detta väldigt mycket mindre än "normalt"?
Jag antar det eftersom de flesta där är specifika för I/O hårdvara på plc'n...
bobobo
Inlägg: 678
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Re: Installera gcc i linux

Inlägg av bobobo »

Kod: Markera allt

root@WAGO-IO-IPC:/lib cat /proc/version
Linux version 2.6.24.7-rt17 (u010896@PC92960) (gcc version 4.1.2) #1 PREEMPT RT Mon Aug 17 12:49:46 CEST 2009
root@WAGO-IO-IPC:/lib cat /etc/issue
cat: can't open '/etc/issue': No such file or directory
root@WAGO-IO-IPC:/lib
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45428
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Installera gcc i linux

Inlägg av TomasL »

Du får kika på "Dependancys" för de program du vill installera.
Scorpiion
Inlägg: 380
Blev medlem: 24 januari 2008, 20:56:06
Ort: Umeå

Re: Installera gcc i linux

Inlägg av Scorpiion »

Tycker som sagt att du ska testa först och se hur det fungerar att kompilera ett enklare program. Tror att det kommer att fungera, men bäst är som sagt att testa.

Sedan är det ju så som jag nämnde, och som andra och sagt, att det är förmodligen bibliotek som kommer vara det största problemet om du vill få detta att fungera. Det kan, om man har otur, vara nog krångligt att få ett specifikt program paketerat för en annan distribution att fungera för den du använder. Detta beror på att det finns så pass många olika bibliotek som olika program är beroende av, och olika distributioner kan ligga före eller efter varandra i versioner på vissa bibliotek.

Om du törs lita på mig så får du gärna testa filen jag laddade upp nu. Det är "Hello World" programmet jag skrev ovan, jag kan svära på att det inte är något annat än det som står högre upp i tråden, men om du litar på mig eller inte är upp till dig. :)

Ps. Filen heter "Hello.txt" bara för att jag skulle kunna ladda upp den här, men det är en exekverbar fil, den går att köra direkt med "./Hello.txt"

EDIT: Är kompilerat med GCC 4.4.5 och med en dator med i5 processor, så om det fungerar så borde det fungera med din i3 också....
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
GFEF
Inlägg: 2371
Blev medlem: 4 december 2004, 18:44:04

Re: Installera gcc i linux

Inlägg av GFEF »

sodjan
>I botten kompatibla processorer och antagligen går det att bygga
>kod som går å de flesta av dagens (och gårdagens) Intel processorer

>>The GNU autotools packages (i.e. autoconf, automake, and libtool
>>use the notion of :

>>a build platform, a host platform, and a target platform.

>>The build platform is where the code is actually compiled.
>>The host platform is where the compiled code will execute.

Även om skiljande mellan ”build platform” och ”host platform”
är liten bör ”GCC and cross compilation” ge uppslag hur man kan göra.

Fråga gäller ett "Linux 2.6 med RT-Preempt patch"
en kärna med tillägg för tidskritisk programkörning.

Vad ger ”top” för >>load average: >>
för ”industridator Celeron 600Mhz som kör linux” vid normal drift ?

Finns det tid för mera program på denna hårdvara?

För program som kan köras på olika hårdvarar brukar typ 386 CPU användas.
Finn det tid för ej bästa möljiga programkörning ?
Scorpiion
Inlägg: 380
Blev medlem: 24 januari 2008, 20:56:06
Ort: Umeå

Re: Installera gcc i linux

Inlägg av Scorpiion »

GFEF,
Så som jag förstått/tror så ska datorn inte göra någon/några av dess ursprungliga uppgifter utan dessa ska tas bort/stängas av så att datorn endast ska fungera som server för Nagios. Lät på dig som om du syftade på dess ursprungliga uppgifter och hur mycket dom drog, fast du kanske bara menade rent allmänt... bobobo kan väl bekräfta om jag fattat rätt? Antog detta var en äldre datorn som "blivit över"...

Om datorn klarar av detta eller inte beror ju det på hur mycket trafik det är som Nagios ska övervaka... Och hur bra den klarar av just den traffiken som finns hos bobobo avklaras ju bäst/enklast genom att testa... :)
Skriv svar