K: Az én linux-disztómban nincs su parancs, de nekem hiányzik! V: Próbáld ki a sudo bash parancsot, hátha valami hasonlót érsz el vele!
K: Szeretném, ha nem futtathatná minden felhasználó a 'su'-t. V: Legyen egy 'wheel' groupod, abba tedd bele a su-jogosult felhasználókat, a /bin/su csoportja is legyen a 'wheel', és az others jogait pedig vedd le róla:
K: Mikorra várható az IPv6 tömeges elterjedése? V: Néhány év múlva.
K: Mihez képest néhány év múlva? V: Ahhoz képest, amikor ezt a FAQ-bejegyzést olvasod.
K: Addig is, tehetek valamit IPv6 ügyben? V: Ha Mozillát vagy Firefoxot használsz, akkor igen: az about:config-ban keresd meg a network.dns.disableIPv6-ot, és állítsd true-ra: máris kikapcsoltál egy egyelőre felesleges feature-t.
K: Mit jelent a .a file-kiterjesztés? V: Egy csomagformátumot, mint amilyen pl a .tar vagy a .cpio.
K: Vagy a .zip meg az .arj? V: Hát, nem egészen, a UNIX-os hagyomány az, hogy egy program csomagol, és egy másik tömörít. Így keletkeznek az olyasfajta filenevek, mint valami.tar.gz vagy valami.tar.bz2.
K: Szóval, hogy újra megpróbáljam, az .ar az olyasmi, mint mondjuk a .deb? V: Igen, sőt a .deb igazából egy .ar, próbáld ki:
$ ar tv /var/local/depo/libperl5.8_5.8.4-8sarge5_i386.deb rw-r--r-- 0/0 4 May 10 06:33 2006 debian-binary rw-r--r-- 0/0 727 May 10 06:33 2006 control.tar.gz rw-r--r-- 0/0 507761 May 10 06:33 2006 data.tar.gz
K: És annak van-e valamilyen lelki oka, hogy az obejct modulokat mindig .ar formátumban tárolják, nem pedig .cpio-ban vagy .tar-ban? V: Van, mégpedig az, hogy az "ar"-arhívumban van (illetve lehet) egy tartalomjegyzék az archivumban lévő object modulok globális szimbólumairól, amit a programszerkesztő program (ld) arra használ, hogy az externális szimbólumakat megtalálja.
K: Mit értesz azon, hogy 'van (illetve lehet)'? V: Az "ar" program "s" opciója jelenti ennek a tartalomjegyzéknek az írását, illetve az önálló "ranlib" program hozhatja létre.
K: Igaz, hogy a szóközt tartalmazó filenevek máshol is okozhatnak gondot? V: Íme egy példa: $ cd /tmp $ mkdir proba $ cd proba $ touch a "b b" "c c c" $ find . -print | xargs echo . ./a ./b b ./c c c
K: Ez így tökéletes, nem? V: Hát nem... próbáld ki így: $ find . -print | xargs ls -ld ls: ./b: No such file or directory ls: b: No such file or directory ls: ./c: No such file or directory ls: c: No such file or directory ls: c: No such file or directory drwxr-xr-x 2 teve users 120 Feb 5 13:56 . -rw-r--r-- 1 teve users 0 Feb 5 11:23 ./a
K: Ezt a kavarodást a file-nevekben lévő szóközök okozták? V: Igen. Most próbáld ki így: $ find . -print0 | xargs -0 ls -ld drwxr-xr-x 2 zsiga users 120 Feb 5 13:56 . -rw-r--r-- 1 teve users 0 Feb 5 11:23 ./a -rw-r--r-- 1 teve users 0 Feb 5 11:23 ./b b -rw-r--r-- 1 teve users 0 Feb 5 11:23 ./c c c
K: Tudom, hogy vérciki, de még mindig nem tiltottam le a <marquee>-t a Mozillámban... hol is van leírva, hogy mit kell csinálni? V: Itt: http://www.mozilla.org/support/firefox/tips#lay_marquee A lényeg: valahol a ~/.mozilla alatt kellene legyen a chrome/userContent.css file (ha még nincs, akkor keressél a mozilla/firefox saját könyvtárában egy userContent-example.css -t, és azt másold át erre a névre), abban már benne is van, csak kikommentezve. Javítsd ki, és indítsd újra a böngészőt.
K: Mit tegyek, hogy a programjaim a dátumot ne 'nap/év/hónap' (vagy hasonló) buggyant formátumban írják, hanem a nálunk szokásosabb év-hónap-nap alakban? V: Az első ötletem az export LC_TIME=hu_HU. Pn nálam a '/usr/local/bin/mozilla' egy shell script, amelynek tartalma:
K: Forrásból akartam fordítani valamit, de hibaüzenettel leállt a ./configure! V: Ha a hibaüzenet nem elég egyértelmű, akkor a config.log -ot érdemes áttanulmányozni, abban valószínűleg megtalálod hogy mit próbált és miért nem sikerült.
K: Ha a ./configure lement, akkor a make all már biztosan sikerülni fog ugye? V: A másik lehetőség az, hogy nem sikerül.
K: Lehet ilyenkor valamit nyomozni? V: Mondjuk először is tanácsos a make kimenetét megőrizni: make all 2>&1; | tee log.make.all, és abból kikeresni azt a sort, ami a hibát okozta. Megpróbálhatjuk ugyanazt kézből is futtatni, de ügyeljünk hogy ugyanabban az alkönyvtárban legyünk, ahol eredetileg futott a parancs. Például a "dbus-glib-0.72" fordítása során úgy érezzük, hogy dbus/examples könyvtárban lévő example-service.c fordítása okozta a hibát. A log.make.all-ból kinézzük az illetékes parancsot, és futtatjuk:
Ha vannak hibaüzenetek, és azokból rájövünk hogy mi a probléma megoldása, akkor készen is vagyunk. Ha nem ez a helyzet, akkor esetleg segíthet, ha fordítás helyett csak preprocesszálást kérünk:
Látható, hogy csak az elején és a végén kellett egy kicsit hangolni, a preprocesszálás eredménye a *.E file-ban keletkezik, amelyik esetleg segíthet a hiba megkeresésében.
K: Lehetséges, hogy egy újabb kernelverzióban megváltozik a modul neve? V: Nemhogy lehetséges, hanem szinte szükségszerű;) Válaszd ki az alábbiak közül a neked megfelelőt: config HW_RANDOM_INTEL intel-rng config HW_RANDOM_AMD amd-rng config HW_RANDOM_GEODE geode-rng config HW_RANDOM_VIA via-rng config HW_RANDOM_IXP4X ixp4xx-rng config HW_RANDOM_OMAP omap-rng
K: Azon sír valamelyik programom (pl a mc), hogy a posix_openpt függvény nem működik! Ellenőriztem a kernelemet, benne van a CONFIG_UNIX98_PTYS=y beállítás. Mi hiányzik? V: Valószínűleg hiányzik a /etc/fstab-ból egy ilyen sor: none /dev/pts devpts defaults 0 0
K: Van egy olyan érzésem, hogy az alaplapom tudna hardveres véletlenszám-generálást, de hogyan próbálhatnám ezt ki? V: Először is kellene egy /dev/hwrng nevű eszköz, ha nincs akkor mknod /dev/hwrng c 10 183. Azután a kernel-konfigban keressük meg a Device Drivers - Character Devices - Intel/AMD/VIA HW Random Number Generator support nevű opciót, olvassuk el a helpet, hogy vajon támogatott-e a készülékünk.
K: Lehet modulként is fordítani? V: Igen, hw_random lesz a modul neve. Ne felejtsük el a kedvenc modul-konfigurációs file-unkba (/etc/modprobe.conf vagy hasonló, disztribúciófüggő) betenni hogy alias char-major-10-183 hw_random.
K: Ez utóbbinak mi az értelme? V: Ebből tudja meg a kernel (által meghívott 'modprobe' program), hogy mit is tegyen amikor azt kérik tőle, hogy találja meg azt a modult, aki a "char-10-183" device funkcióját tartalmazza.
K: Tehát, hogyan generálok véletlenszámokat? V: Pl: dd if=/dev/hwrng of=binrandomfile bs=2048 count=1 hatására lesz 2KB véletlenszerű byte-od.
K: Számos jópofa environment változóm van, amik szeretném ha konzolon is meg X11-ben meg mindenhol érvényesülnének. Azt hallottam, hogy a /etc/environment-be kell betenni őket. V: Beteheted, de nem garantált hogy _minden_ esetben érvényre jutnak. Pl PAM-esetén a "auth required pam_env.so" sor kell az érintett komponensekbe (pl /etc/pam.d/login-be)
K: Egyéb megoldás? V: Mondjuk csinálsz egy /etc/common.env című file-t, és annak a hívását teszed be ("source /etc/common.env" vagy ". /etc/common.env") minden olyan file-ba, ami nem tud elszaladni. Pl nálam: cat /etc/common.env export EDITOR=/usr/bin/mcedit export LANG=C export LC_CTYPE=hu_HU.ISO8859-2 export LESSCHARSET=latin1 export NLS_LANG=American_America.EE8ISO8859P2 export ORACLE_HOME=/usr/local/OraHome1 export ORACLE_LINK="-L${ORACLE_HOME}/lib -lclntsh -lwtc8"
K: Szeretném az rxvt-ben megváltoztatni a cursor színét, hogy ezentúl mindig sötétszürke legyen, ne pedig fekete. Mit tegyek? V: A ~/.Xdefaults-ba tegyél egy ilyen sort: Rxvt.cursorColor: darkgrey!
K: Az az igazság, hogy még sok más programban szeretnék sokmindent megváltoztatni, honnan tudjam hogy mit kell írnom az .Xdefaults-ba? V: Végső esetben a program manual-ját kell elolvasnod, az "application class" és a "resource" szavakra keress rá. Bónuszként egy példa, találd ki (man xfontsel) mi a hatása ennek a sornak: XFontSel.sampleText: ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP\nárvíztűrő tükörfúrógép
K: Úgy látom hogy sok mindent lehet így hangolni, de fel vagyok háborodva, hogy miért nincs egy külön regedit program mindehhez! V: Van, és úgy hívják hogy text-editor.
K: De miért nem XML-ben vannak ezek a beállítások? V: Mert amikor az X Window System -et kitalálták, nemhogy XML de még SGML sem volt.
K: Nagyon hasznos feature Debianban a dpkg -l '*mask*', csak az az egy apróság bosszant, hogy a hosszú csomagneveket szépen megcsonkítja, így amit kiír az tulajdonképpen használhatatlan, pl: $ dpkg -l '*libmysqlclient*' pn libmysqlclient <none> (no description available) pn libmysqlclient <none> (no description available)
V: Szerencsére nem fix vágási szélesség van, hanem a terminál szélességéhez alkalmazkodik, azaz "át lehet vágni", valahogy így: COLUMNS=200 dpkg -l '*libmysqlclient*' | | cut -b1-60 pn libmysqlclient6 <none> pn libmysqlclient6-dev <none>
K: Mik azok a kérdések, amikkel a legkönnyebben fel lehet bosszantani téged? V: #1: A gépem nem látja a hálózatot/ nyomtatót/ kamerát, mit csináljak? #2: Tudja valaki, hogy mivel lehet hervelit cservelizni. #3: Lépésenként írjátok le, hogy mit csináljak, mert nagyon kezdő vok. A sűrgős választ az alábbi email-re várom:
K: Mi a baj ezekkel? V: #1: A "nem látja"-val nem tudok mit kezdeni, írd le hogy mit csináltál, mi történt és mi kellett volna történjen szerinted. #2: Egyrészt legalább keresd meg azt a rohadt kérdőjelet, másrészt mit segít rajtad az hogy "Igen, valaki tudja"?! #3: A gügyögést ("vok") lehetőleg hagyd ki, valamint vedd figyelembe hogy te itt nem fizető ügyfél vagy, hogy a kérdésedre hol, mikor és milyen választ kapsz az leginkább azon múlik, hogy jól kérdeztél-e, és hogy jár-e erre valaki, aki foglalkozik a problémáddal.
K: Nekem meg a helyi hálózattal van gondom! V: Az bizony baj...
K: Még az is lehetséges, hogy én állítottam be valamit rosszul? V: Elméletileg előfordulhat.
K: Ha több információt adnék, tudnál pontosabb választ adni? V: Nem lehetetlen... ifconfig, route -n, meg persze az, hogy mi az ami nem működik (nem, ne azt írd, hogy "a gépem nem látja a hálózatot").
K: Mindent megcsináltam és beállítottam, de szeretném látni is a Windows-os gépeket linuxból és fordítva! V:(fejét csapkodja a falhoz és sír) Mit szeretnél?! K: Ne legyél má' ideges, arról beszélek, amit a Windows "File and Printer Sharing"-nek illetve "Client for Microsoft Network"-nek nevez. V: Jó, így már értem. A "File and Printer Sharing"-nek a Samba server a megfelelője, ha nem találsz a rendszeredben felhasználóbarát (grafikus, kattintós) beállítási lehetőséget (pl: swat, webmin), akkor a következőknek nézz utána: smbd, nmbd, smb.conf, testparm. K: És a "Cient for Microsoft Network"? V: Mint az előbb: vagy valamilyen megkönnyített interface-en keresztül (pl konqueror-ban smb:// vagy a TkSmb), vagy a UNIX-os módszerrel az alábbiakkal: smbclient, mount, umount, fstab. K: És üzengetni hogyan tudok SMB-n át? V: Pl a "smbclient -M"-mel vagy a linpopup-pal.
K: Mindent megcsináltam és beállítottam, de szeretném látni is a Windows-os gépeket linuxból és fordítva! V:(fejét csapkodja a falhoz és sír) Mit szeretnél?! K: Ne legyél má' ideges, arról beszélek, amit a Windows "File and Printer Sharing"-nek illetve "Client for Microsoft Network"-nek nevez. V: Jó, így már értem. A "File and Printer Sharing"-nek a Samba server a megfelelője, ha nem találsz a rendszeredben felhasználóbarát (grafikus, kattintós) beállítási lehetőséget (pl: swat, webmin), akkor a következőknek nézz utána: smbd, nmbd, smb.conf, testparm. K: És a "Cient for Microsoft Network"? V: Mint az előbb: vagy valamilyen megkönnyített interface-en keresztül (pl konqueror-ban smb:// vagy a TkSmb), vagy a UNIX-os módszerrel az alábbiakkal: smbclient, mount, umount, fstab. K: És üzengetni hogyan tudok SMB-n át? V: Pl a "smbclient -M"-mel vagy a linpopup-pal.
K: Még mindig nem tudok netezni! Mi lehet a baj? V: Egy picit várnod kell a válaszra... K: Meddig? V: Míg kifejlesztem a távolbalátás képességét... K: Lehet hogy több információt kellene adnom? V: Lehet... ping 217.20.131.3 működik? (Igen/Nem, ha nem, mi a hibaüzenet?) ping forum.index.hu működik? (Igen/Nem, ha nem, mi a hibaüzenet?) route -n mit ír ki? (root-ként futtasd) ifconfig mit ír ki? (root-ként futtasd)
K: Nem írtad az idézőjel nélküli $@-ot! V: Az pont ugyanúgy működik, mint az idézőjel nélküli $*.
K: Mik azok az & jelek a soraid elején? V: Valószínűleg -t akartam írni, csak elrontottam. Korábban a fórumon volt <PRE></PRE>, de hála a fejlődésnek ez megszűnt.
K: Igaz, hogy a linux-on lehet Novell Netware szervert emulálni? V: Valamikor régen lehetett, lásd a IPX-HOWTO idevágó részét. Valószínűleg még most is működik, bár mikor próbából lefordítottam, voltak némi problémái... lásd valamelyik topikban
K: És az asm-generic? V: Rendben, legyen az is, tehát: /usr/include/linux -> /usr/src/linux/include/linux /usr/include/asm -> /usr/src/linux/include/asm /usr/include/asm-generic -> /usr/src/linux/include/asm-generic /usr/include/scsi -> /usr/src/linux/include/scsi
K: Na, "ifconfig" tud az eth0-ról! V: És, jó az IP-cím, amit ír?
K: Mi a jó IP, ha router-em van? V: Leggyakrabban 192.168.0.*, 192.168.1.* vagy hasonló. K: És ha nincs? V: Akkor szinte bármi lehet, kivéve a 192.168.*.*-ot, és a többi úgynevezett helyi IP-címet.
K: És még mit nézzek meg? V: Mondjuk a route -n outputját, abban kellene látnod a routolási táblázatot, különös tekintettek a default gateway-re. (Tipikusan 192.168.0.1, 192.168.1.254 vagy hasonló).
K: Továbbá? V: Próbáld megpingetni a lokális hálózat gépeit! K: He? V: Pl ha a géped címe 192.168.0.8 akkor próbáld ezt: ping 192.168.0.255. Erre az összes lokális gépnek válaszolnia illene.
K: Szóval akkor hogyan tudok platform-független módon definálni egy 32-bites változót? V: Az eddigiek alapján sehogy... szerencsére ezt a gondot a tudós fejlesztők is felismerték, és a sys/types.h-ban definiálták az int16_t, int32_t, int64_t típusokat.
K: C-programban mekkorák a short, int, long, long long, size_t, void *, ptrdiff_t adattípusok? V: Platformfüggő.
K: És mégis, mit lehet tudni róluk? V: Hát... legtöbbször sizeof (char)=1 sizeof (short)=2 sizeof (short)<=sizeof (int)<=sizeof (long)<=sizeof (long long) sizeof (long)=4/8 sizeof (long long)=8 sizeof (void *)=sizeof (long) sizeof (size_t)=sizeof (long) sizeof (ptrdiff_t)=sizeof (void *)
K: És mi következik ebből? V: Pl, ha olyan adatot akarsz felvenni, ami számot és pointert is tartalmazhat, akkor az ne "int" legyen, hanem "long", és máris hordozhatóbb a programod.
K: Nem megy az internet! V: Sajnálatos. Kérdésed van?
K: Van: mit csináljak, hogy működjön az ADSL/CATV internet? V: Ellenőrizd, hogy van-e Ethernet-kártya a gépedben, össze van-e kötve a modemmel (haladó esetben router-rel). Ha van hálókártya (magyarul NIC), akkor 1. derítsd ki a típusát (de pontosan ám, nem csak úgy hogy "Intel" meg "integrált"). 2. ellenőrizd, hogy égnek/vilognak-e rajta kis lámpácskák (LED-ek).
K: És ha tudom a NIC típusát? V: Derítsd ki, hogy a linux támogatja-e, és ha igen, minő driverrel (kernelmodullal)! K:Én derítsem ki?! V: Igénybe vehetsz fizetett segítőt is, de akkor minek neked ez a FAQ? K: De hol keressem az információt? V: Pl a /usr/src/linux/Documentation könyvtárban, illetve az interneten. Egy régebbi leírás pl itt: http://www.faqs.org/docs/ethernet/Ethernet-HOWTO.html.
K: Honnan tudom, hogy szerencsésen betöltődött a driver? V: Próbáld ki ezt a parancsot: ifconfig -a. Ha van az outputban eth0, akkor jó a helyzet.