Instalace binutils v LFS

noname

Instalace binutils v LFS
« kdy: 22. 03. 2014, 19:33:51 »
Zdravím všechny, potřeboval bych Vás poprosit o radu s chybou při kompilaci.

Nedávno jsem se rozhodl, že se pokusím nainstalovat Linux From Scratch. Založil jsem si tedy virtuální stroj se dvěmi cd-romkami, kde jsem do jedné vložil obraz Debian live 7.0 (i 386) a do druhé obraz vytvořený ze stažených programů. Ze začátku jsem vše nějakým způsobem zvládal, ale zasekl jsem se hned při první kompilaci v prvním průchodu.

1. V knize jsou všechny příkazy popsány bez spouštění root shellu, já musím vždy zadat 'sudo', pokud chci cokoliv konfigurovat, jako klasický uživatel toto nemohu. Zapomněl jsem na něco v průběhu instalace? Udělal jsem něco špatně? Při kompilaci se pravidelně zobrazovala chyba: C compiler cannot create executables. Vlastník i skupina souborů jsou lfs.

2. Tuto chybu jsem nakonec obešel nezávisle pomocí dvou postupů.
    a) Vygooglil jsem, že by mohlo pomoci nastavení proměnné CC="gcc -B/usr/bin/", kdy následuje konfigurace ze samostatné složky, jak doporučuje kniha.
    b) Použiji příkaz "sudo" a konfigurace proběhne bez jakýchkoliv zádrhelů. Pro tento případ přidám do sudoers %lfs   ALL=(ALL:ALL) ALL a pokračuji.
Při obou postupech uvedených výše se dostanu až k make install, kdy je vypsána chyba mkdir: cannot create directory `/tools': File exists. Pro konfiguraci využívám následující příkaz: ../binutils-2.24/configure --prefix=/tools --with-sysroot=$LFS --with-lib-path=/tools/lib --target=$LFS_TGT --disable-nls --disable-werror, jak je popsáno v dokumentaci.
Verze binutils je 2.24, verze LFS 7.5

V případě neschopnosti překonat výše popsanou chybu jsem uvažoval o úpravě Makefile, kde bych vymazal řádek starající se o tvorbu odpovídajícího adresáře, ale jelikož jsou binutils základním kamenem celé instalace, nerad bych něco pokazil hned na začátku, abych se na konci dozvěděl, že můžu začít znova.

Napadá někoho, v čem by mohla být chyba? Proč je vytvářen adresář, který jsem již vytvořil?
Co by mi případně hrozilo po úpravě Makefile, kde bych odstranil řádek  $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS) (u mě č.2390)?

Děkuji všem za odpovědi!
   
« Poslední změna: 24. 03. 2014, 11:35:55 od Petr Krčmář »


trubicoid2

Re:Jak nainstalovat binutils v LFS?
« Odpověď #1 kdy: 22. 03. 2014, 20:11:22 »
no oni radi, ze nemas delat pod rootem, aby se neco nepokazilo, takze udelas uzivatele lfs (asi mas) a das mu vlastnictvi $LFS/tools a $LFS/sources (mas?) [kapitola 4.3]

jestli nemas, tak vono to pod rootem taky pujde no, ale muzes neco prepsat v hostu, proto to tak maji

jinak 1. nerozumim, to je gcc v hostu? teda v tom debianu? voni nejak divne udelaji link $LFS/tools na / uz v kapitole 4.2, ale to tak asi nema byt, to mas udelat, az jsou ty tools hotovy, teda mezi kapitolou 5 a 6, aby se misto kompilatoru z hosta pouzily ty z /tools

a to opravdu havaruje na "mkdir: cannot create directory `/tools': File exists"? zkontroluj prava a linky a jestli je to v poradku, tak to vyhod

nekdy pomuze make -k install

noname

Re:Jak nainstalovat binutils v LFS?
« Odpověď #2 kdy: 22. 03. 2014, 20:38:09 »
no oni radi, ze nemas delat pod rootem, aby se neco nepokazilo, takze udelas uzivatele lfs (asi mas) a das mu vlastnictvi $LFS/tools a $LFS/sources (mas?) [kapitola 4.3]

jestli nemas, tak vono to pod rootem taky pujde no, ale muzes neco prepsat v hostu, proto to tak maji

jinak 1. nerozumim, to je gcc v hostu? teda v tom debianu? voni nejak divne udelaji link $LFS/tools na / uz v kapitole 4.2, ale to tak asi nema byt, to mas udelat, az jsou ty tools hotovy, teda mezi kapitolou 5 a 6, aby se misto kompilatoru z hosta pouzily ty z /tools

a to opravdu havaruje na "mkdir: cannot create directory `/tools': File exists"? zkontroluj prava a linky a jestli je to v poradku, tak to vyhod

nekdy pomuze make -k install

Díky za odpověď.

Vlastnictví /tools a /sources jsem udělal pomocí chown -R lfs:lfs /tools (resp. /sources). Je to tak správně?
Co se gcc týče, ještě jsem jej nekompiloval, takže využívám gcc z instalačního cd, tedy jestli jsem správně pochopil, z hostu.
Zástupce mám vytvořeného přesně podle návodu v kořenovém adresáři ( /tools )

Podle všeho to skutečně spadne při popsané chybě. Dále už tam bylo jen pár řádků a konec. Ještě to všechno znovu kompiluji od začátku, abych měl jistotu a vyzkouším všechno, co jste mi popsal. Jakmile to budu mít hotové, napíšu Vám do diskuse, jak jsem dopadl a jak je to přesně s popisem a zněním chyby, kdyby náhodou vše bylo odlišné od původního příspěvku. Ale vše jsem psal podle virtuálního stroje, snad to tedy bude v pořádku.

trubicoid2

Re:Jak nainstalovat binutils v LFS?
« Odpověď #3 kdy: 22. 03. 2014, 20:55:30 »
ten chown mas dobre; mozna je neco spatne s tim livecd, jakou mas verzi? standart, rescue, kde, gnome? jinak vidim, ze aktualni verze debian-live je 7.4.0 a navic ty mas i386 a ne amd64; nechces mozna amd64?

a to $LFS je kde? von ten live asi zije v ramdisku a je potreba asi ve virtualu udelat nejakou jako hdd partci a na ni to dat, jinak ti to vzdycky po restartu virtualu zmizne; nechapu nejak ten druhy obraz se stazenyma programama, mozna to je ono? teda pokud to nemas jako RO iso. jinak samozrejme muzes programy stahovat za chodu pres wget...

si myslim, ze tu chybu v binutils vyresi proste make -k

noname

Re:Jak nainstalovat binutils v LFS?
« Odpověď #4 kdy: 22. 03. 2014, 21:18:27 »
ten chown mas dobre; mozna je neco spatne s tim livecd, jakou mas verzi? standart, rescue, kde, gnome? jinak vidim, ze aktualni verze debian-live je 7.4.0 a navic ty mas i386 a ne amd64; nechces mozna amd64?

a to $LFS je kde? von ten live asi zije v ramdisku a je potreba asi ve virtualu udelat nejakou jako hdd partci a na ni to dat, jinak ti to vzdycky po restartu virtualu zmizne; nechapu nejak ten druhy obraz se stazenyma programama, mozna to je ono? teda pokud to nemas jako RO iso. jinak samozrejme muzes programy stahovat za chodu pres wget...

si myslim, ze tu chybu v binutils vyresi proste make -k
Verzi amd64 bohužel nemůžu využít, protože virtualizuji na atom N2600, což mimo jiné znamená, že nemám moc výkonu. Pracuji pouze v příkazovém řádku, grafické rozhraní nevyužívám. $LFS mám nainstalovaný na virtuálním harddisku ve virtuálním stroji. Vytvřil jsem si tam asi 7GB (mountnutý v /media/LFS_INSTALL pro LFS a 1GB pro swap. Live jsem neinstaloval, bude tedy pravděpodobně v ramdisku. Programy jsem stáhnul podle seznamu distribuovanému k LFS pomocí wget udělal z něj pro své potřeby iso obraz pomocí genisoimage. Samozřejmě jakmile bylo v návodu zkopírujte soubory do /tools, tak jsem to udělal, cd by tedy už nemělo hrát vliv.

Původně jsem měl takovou představu, že si udělám virtuální stroj čistě s LFS a nechtěl jsem tam žádné další oddíly. Tak jsem si říkal, že instalace přes live cd by mohla být nejjednodušší. Snad to nebudu muset restartovat... Jinak restarty neřeším. Vždy ukládám stroj zapnutý a dokonce mám jednu zálohu, kdyby cokoliv.


noname

Re:Jak nainstalovat binutils v LFS?
« Odpověď #5 kdy: 22. 03. 2014, 21:28:37 »
Právě doběhla instalace, vypadlo to na existenci adresáře.
Ještě jsem to všechno dvakrát vyzkoušel a nakonec jsem zjistil, že jsem to celou dobu zadával bez sudo.  :-[
Zdá se, že je to všechno v pořádku.

Díky za pomoc!

trubicoid2

Re:Jak nainstalovat binutils v LFS?
« Odpověď #6 kdy: 22. 03. 2014, 21:29:03 »
n2600 je 64bitovej, tak je to teda omezeny necim jinym? jinak je to asi vse v pohode, jen mozna live-rescue by vubec nemusel mit gcc treba; standart ho snad ma; otazka je, jestli funguje

mozna by bylo lepsi pouzit misto live-debianu gentoo, jestli chces i386 tak toto:
http://distfiles.gentoo.org/releases/x86/autobuilds/current-iso/install-x86-minimal-20140318.iso

tam by gcc melo byt v pohode

trubicoid2

Re:Jak nainstalovat binutils v LFS?
« Odpověď #7 kdy: 22. 03. 2014, 21:32:18 »
a nakonec jsem zjistil, že jsem to celou dobu zadával bez sudo.  :-[

no oni to tak chteji, abys to delal bez sudo, viz muj prvni komentar
aby jsi neznicil neco v hostu, ale kdyz to mas vlastne live-cd, tak se to ani stat nemuze  ;)

noname

Re:Jak nainstalovat binutils v LFS?
« Odpověď #8 kdy: 22. 03. 2014, 21:41:09 »
n2600 je 64bitovej, tak je to teda omezeny necim jinym? jinak je to asi vse v pohode, jen mozna live-rescue by vubec nemusel mit gcc treba; standart ho snad ma; otazka je, jestli funguje

mozna by bylo lepsi pouzit misto live-debianu gentoo, jestli chces i386 tak toto:
http://distfiles.gentoo.org/releases/x86/autobuilds/current-iso/install-x86-minimal-20140318.iso

tam by gcc melo byt v pohode

Právě že mi se v příkazovém řádku povedlo nainstalovat prozaatím všechno. gcc tam bylo, ještě jsem přiinstaloval bison a prozatím funguje, tak doufám, že to taky vydrží. Jen jsem nečekal, že to bude až takhle nadlouho a docela mě mrzí, že se mi nepodařilo přijít na to, proč tam musím pořád řešit příkazy přes sudo, když mám PATH a přístupová práva v pořádku. Parametry pro mountování jsem kontroloval a taky jsou v pohodě. Tam vážně nevím...

Ale nějak to už nainstaluju bez toho a doufám, že se na tom naučím tolik, abych když to budu instalovat příště (možná naostro) tak už bude vše tak, jak to má správně být.

trubicoid2

Re:Jak nainstalovat binutils v LFS?
« Odpověď #9 kdy: 22. 03. 2014, 22:01:44 »
ja si myslim, ze to mozna souvisi s tim live, lfs neni napsany na live a ten make install chce prepsat /tools kterej je jen link v / a ten link asi nema spravny prava, ten $LFS/tools ano; musel bys udelat ls -l / | grep tools

jako obycejnej lfs user muzes udelat touch $LFS/tools/nejakablbost?

nevyhoda toho live pristupu je, ze se ti mezi rebootama ztrati prave ten uzivatel lfs, ten link a profile (podle toho, kde to mas)

takze bych to cely asi delal pod rootem, profil bych dal do $LFS/root/.profile a hotovo; sudo su v debianu-live asi funguje, ne?

Atrament

Re:Jak nainstalovat binutils v LFS?
« Odpověď #10 kdy: 22. 03. 2014, 22:05:16 »
Napadlo mně - a děláš to jako přihlášený uživatel 'lfs'?

trubicoid2

Re:Jak nainstalovat binutils v LFS?
« Odpověď #11 kdy: 22. 03. 2014, 22:09:35 »
nu mozna ne, ty live tam se neprihlasujes ...
i kdyz pise ze da lfs do sudoers a pak to funguje

pak je jeste otazka, jestli ten uzivatel lfs, kdyz ho pokazdy vytvori znova, bude mit stejny uuid, ktery by souhlasilo s pravama na $LFS/tools atd.; no snad jo

noname

Re:Jak nainstalovat binutils v LFS?
« Odpověď #12 kdy: 22. 03. 2014, 22:52:55 »
ja si myslim, ze to mozna souvisi s tim live, lfs neni napsany na live a ten make install chce prepsat /tools kterej je jen link v / a ten link asi nema spravny prava, ten $LFS/tools ano; musel bys udelat ls -l / | grep tools

jako obycejnej lfs user muzes udelat touch $LFS/tools/nejakablbost?

nevyhoda toho live pristupu je, ze se ti mezi rebootama ztrati prave ten uzivatel lfs, ten link a profile (podle toho, kde to mas)

takze bych to cely asi delal pod rootem, profil bych dal do $LFS/root/.profile a hotovo; sudo su v debianu-live asi funguje, ne?

Omlouvám se, že jsem se delší dobu neozval. Ano, pod rootem to funguje všechno dobře. Jen jsem to chtěl dělat přesně podle návodu. Jestli jsem to totiž správně pochopil, tak se do instalace může promítnout nastavení uživatele, pod kterým LFS instaluji.

noname

Re:Jak nainstalovat binutils v LFS?
« Odpověď #13 kdy: 22. 03. 2014, 22:54:17 »
Napadlo mně - a děláš to jako přihlášený uživatel 'lfs'?
Ano, jsem přihlášen jako lfs přes sudo su - lfs, jak je popsáno v návodu.

noname

Re:Jak nainstalovat binutils v LFS?
« Odpověď #14 kdy: 22. 03. 2014, 22:57:37 »
nu mozna ne, ty live tam se neprihlasujes ...
i kdyz pise ze da lfs do sudoers a pak to funguje

pak je jeste otazka, jestli ten uzivatel lfs, kdyz ho pokazdy vytvori znova, bude mit stejny uuid, ktery by souhlasilo s pravama na $LFS/tools atd.; no snad jo

Prozatím jsem uživatele vytvářel pouze jednou a je tam dosud. Ještě jsem nemusel restartovat. Doufám, že až to budu mít hotové, budu tomu rozumět natolik, abych to příště nainstaloval čistě, případně vychytal všechny chyby sám.