HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

  • sdani: @Travis.CG: Nohát, nem is tudtam, hogy ilyen van... bár ahogy elnézem ezek a komponensek fizetősek... (2018.11.01. 10:14) Rossz beidegződések a bionformatikában
  • Csenge Tarnói: Ez érdekes. Most csinálok egy meta-analízist, életemben először, úgyhogy az én tudásom is felszíne... (2018.10.01. 21:39) Ez már nekem sok
  • robertherczeg: Nekem a kedvenc az volt, hogy: "Inkább eleve Mann-Whitney és/vagy Wilcoxon tesztet használjunk, m... (2018.09.04. 07:47) Ezért utálom a Wilcoxon-tesztet
  • Travis.CG: ÉÉÉÉÉs megjelent! (2018.08.24. 23:31) Nehéz szülés 2
  • Szedlák Ádám: Hogy én mennyire köszönöm ezt a posztot, arra nincs szó. A kódoljon mindenki / legyen mindenki olc... (2018.06.25. 03:37) Legyen mindenki programozó

Rendszer építés

2016.09.24. 07:51 Travis.CG

Majd három évvel az előző verzió megjelenése után itt az új Slackware. El is határoztam, hogy frissítem a rendszert. Ez egyáltalán nem volt egyszerű. Először is az optikai meghajtóm SATA kábele nem működik valami jól, valószínű a számítógép külföldre költöztetése során megsérült. Mivel nem egy komoly tétel, ezért a "majd később szerzek egyet" kategóriába esett, vagyis mindig találtam valami indokot, amivel elodáztam a beszerzést.

A másik probléma, hogy van egy csomó olyan fájl a gépemen, ami arra nem érdemes, hogy letöröljem, de annyira nem is fontos, hogy biztonsági mentést csináljak. Sehova nem tudtam őket átmásolni. Végezetül a Slackware rendszerem egy RAID 0-án csücsül (a boot meg egy RAID 1-n), ami teszi a dolgát, nem kellene bolygatni.

Először csináltam a gyökérbe egy biztonsági másolatot a HOME könyvtárról és még néhány configurációs állományról, bemásoltam a Slackware ISO-t is, majd ezeket kivéve letöröltem mindent. Most már nem volt visszaút. A telepítő lemezen volt egy telepítő boot fájl, azt USB meghajtóra másoltam, majd elindítottam róla a rendszert.

A telepítő gond nélkül elindult. Mivel a partícionálás már megvolt, ezért rögtön a rendszer telepítésére ugrottam. Mivel a csomagok az ISO-n voltak, azt felcsatoltam:

mount slackware.iso /mnt/dvd -o loop -t iso9660

Megadtam a RAID 0-t gyökér partíciónak, a RAID 1-t bootnak (utóbbit formáztam is), majd jött a csomagok kijelölése. Erre számtalan opció van. Le lehet tölteni netről, kereshetem pendrive-n, vagy előre felcsatolt könyvtárban. Itt volt néhány felesleges köröm, mert a doksi szerint elég a csatolási pontot megadni (/mnt/dvd az én esetemben), de ez nem igaz, a könyvtár helye kell. (/mnt/dvd/slackware64) A rendszer persze nem ad semmilyen hibaüzenetet, de gyanús volt, hogy a csomagok felmásolása kb. 4 másodpercet vett igénybe.

Miután erre rájöttem, a rendszer szépen települt. Még a Lilo felpakolása sem volt gond, bár automatikusan nem ment, kézzel kellett megadni a Linux és a boot loader helyét.

A telepítő nem piszkálta a félretett fájlokat, azokat az első indítás után visszamásoltam a HOME-ba, és kész is voltam.

Eddig az NVidia meghajtó telepítése sem okozott gondot, de az új Slackware is beállt a sorba és a nouveau driverrel érkezik. Ez a két meghajtó program nagyon nem szereti egymást. Szerencsére az NVidia telepítője szépen kikapcsolta.

Az egyetlen dolog, amivel gondom volt, a CUDA SDK telepítése. Kiderült, hogy a C++ fordító túl új, vissza kellene mennem a 4.9-es verzióra. Ahol ugye csomagkezelő van, ott ez nem probléma, de Slackware alatt egy kezdetleges van, függőség kezelés nélkül. Ezért úgy döntöttem, kézzel fordítok egy GCC-t. Olyat még úgysem csináltam.

Egy fordító fordítása érdekes folyamat. Három lépésből áll. Először kell fordítani egy GCC-t (a rendszeren található GCC-vel), majd az a GCC lefordítja önmagát, és ez a másodszor fordított GCC ismét lefordítja önmagát. Közben összehasonlítja, hogy a másodszor és harmadszor fordított fordító ugyan az-e. Végül lefordítja a könyvtárakat.

Először a 4.7-el próbálkoztam, de az hibával elszállt. Végül egy 4.9-t fordítottam, mert gondoltam az verzió számban közelebb van a telepített GCC-hez. Jó másfél órát izmolt a gép, mire mindent lefordított. Az új GCC-t az /usr/local/gcc-4.9 könyvtárba pakoltam, és a verziószámot beállítottam suffixként, hogy meg tudjam különböztetni ezt a sok fordítót. A PATH környezeti változót pedig úgy állítottam be, hogy először ebben a könyvtárban keresse a binárisokat. Ezzel az egyszerű trükkel az nvcc előbb találja meg a neki megfelelő fordítóprogramot. Utána már a CUDA példaprogramok lefordítása sem okozott problémát.

Eddig egyszerűen megúsztam, hogy konfigurálnom kelljen a wi-fit, mert minden telepítőt leszedtem a munkahelyemen és hazavittem. Amire viszont most készültem, ahhoz a net elengedhetetlen volt.

A kernel szerencsére felismerte az USB-s wi-fi adaptert, a megfelelő modult is betöltötte. Az /etc/wpa_supplicant.conf fájlba fel kell vinni a kívánt hálózat adatait, az itt leírtak szerint. El kell indítani a wpa_supplicant programot, hogy csatlakozni tudjon. El kell indítani a dhcpcd wlan0, hogy kapjunk IP-t és már netezhetünk is.

Meg kell jegyezni, hogy igazán felemelő olyan környezetben dolgozni, ahol nem telefonál haza minden kis hülye alkalmazás, hogy adatokat gyűjtsön a felhasználói élmény növelése céljából. Mivel 1 Mb-es netem van, érezhető a különbség az Ubuntu és Slackware között (a Windows 10-ről inkább nem is beszélek).

Így már nekiláthatok a Torch telepítésének. A GitHubról leszedett kód igyekszik telepíteni a függőségeket. Van is egy szkript, ami Ubuntu, Fedora, ArchLinux, CentOS, elementary OS alatt fel is tesz mindent. Slackware persze nem támogatott, de ez nem is baj. Személy szerint ezért kedvelem ezt a disztribúciót, mert alapból benne van minden, ami egy fejlesztőnek kell. Megnéztem a szkriptet és két olyan függőségre volt csak szükség, ami nincs telepítve. Az egyik az OpenBLAS, a másik az iPython. Az OpenBLAS a Torch lelke, abban vannak a mátrix műveletekhez szükséges optimalizált könyvtárak. GitHubról simán felment. Az iPython viszont nem értettem, miért kell. Rövid gondolkodás után úgy döntöttem, az bizonyára csak akkor kell, ha valaki Pythonból akarja használni a programot, ezért azt nem telepítettem.

A Torch gond nélkül lefordult. Mivel ez is egyfajta programozói környezet, számtalan csomag van hozzá, amit külön kell telepíteni. A luarocks install fel is pakolt mindent, amit akartam, kivéve a cutorch csomagot, ami a CUDA támogatás lett volna. Valami oknál fogva megtalálta az új GCC-t, és nem a 4.9-t, ami a CUDA fordítónak kell. Böngésztem a netet megodás után kutatva, de mindenki csak azt javasolta, hogy szimlinkek kusza halmazával oldjam meg a problémát. Az nem jó. Aztán egy kósza gondolattól vezérelve létrehoztam két környezeti változót: CC és CPP, amit megfeleltettem a régi GCC-nek:

export CC=gcc-4.9.0; export CPP=g++-4.9.0

A telepítőt újra futtatva már nem volt több gond. Ha minden jól megy, egy új tematikával fog bővülni a blog...

Szólj hozzá!

Címkék: rendszergazda

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr8611706445

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.