Keresés

Részletes keresés

NevemTeve Creative Commons License 2013.08.13 0 0 203

Frissítés:

A Java-t megvette az Oracle, de ettől függetlenül választhatunk 32- és 64-bites változatok közül, illetve a JRE (csak futtatókörnyezet) és JDK (fejlesztőkörnyezet is) közül.

 

Töltsük le a kiválasztott *.tar.gz-t, és a Midnight Commander nevű eszközzel menjünk bele (vannak haladóbb módszerek is), és a benne lévő könyvtárat (valami ilyesmi: jdk1.7.0_25) másoljuk át egy nekünk tetsző helyre (/usr, /usr/local, /opt stb).

 

Átnevezhetjük a könyvtárat verziószám nélkülire, vagy (haladó esetben) csinálhatunk szimlinket:

    cd /opt

    ln -s jdk1.7.0_25 jdk

 

Hátra van még az a probléma, hogy  Java programjait elhelyezzük a PTH-on. Egy lehetőség az, hogy keresünk valami /etc/profile vagy hasonló fájlt, és abba becsépeljük ezt:

    export JAVA_HOME=/opt/jdk # vagy ahová tettük

    export PATH="$PATH:$JAVA_HOME/bin"

 

Vagy, ha mondjuk pl a /opt/bin már amúgy is benne van a PATH-ban, megpróbálhatjuk oda belinkelni a java programjait:

    cd /opt/bin

    ln -s /opt/jdk/bin/* .

 

Előzmény: NevemTeve (109)
NevemTeve Creative Commons License 2013.08.09 0 0 202

Az élet csupa változás, ma már /usr/lib/mozilla/plugins a nyerő (persze az lehet egy szimlink is egy nekünk tetsző másik könyvtárra), azon belül pedig a java pluginja egy szimlink legyen ide: /ahol_a_jre_van/jre/lib/i386/libnpjp2.so. Pl:

 

$ ls -l /usr/lib/mozilla/plugins/

17418852 Jun 18 23:53 libflashplayer.so
          29 Aug  9 09:13 libnpjp2.so -> /opt/jre/lib/i386/libnpjp2.so

Előzmény: NevemTeve (109)
NevemTeve Creative Commons License 2013.08.07 0 0 201

De az is lehet, hogy túl optimista voltam, és a fájó valóság az, hogy ezek az include-ok most éppen sehogy sem jók, még a kernel (3.10.5) maga sem fordul velük...

Előzmény: NevemTeve (200)
NevemTeve Creative Commons License 2013.08.07 0 0 200

Közben fejlődött a kernel is, ma már ez látszik jónak:

 

(legyen most $USL=/usr/src/linux)

/usr/include/linux       -> $USL/include/uapi/linux
/usr/include/asm         -> $USL/arch/x86/include/uapi/asm
/usr/include/asm-generic -> $USL/include/uapi/asm-generic

Előzmény: NevemTeve (119)
NevemTeve Creative Commons License 2013.06.17 0 0 199

K: Van olyan platform, a LINES meg a COLUMNS nincs beállítva, pedig hasznos lenne!

V: Próbáld ki ezt a parancsot shell-ben:

$ export COLUMNS=$(tput cols); export LINES=$(tput lines)

Előzmény: NevemTeve (180)
NevemTeve Creative Commons License 2013.06.05 0 0 198

Kieg: Adott esetben nem árt, ha a /usr/lib/mozilla/plugins is egy szimlink ugyanoda:

 

# ls -l /usr/lib/mozilla/plugins

lrwxrwxrwx 1 root root 12 Jun  5 12:33 /usr/lib/mozilla/plugins -> /opt/plugins

Előzmény: NevemTeve (196)
NevemTeve Creative Commons License 2013.06.04 0 0 196

K: Flash plugint szeretnék a Firefox-ba, le is töltöttem innen: http://get.adobe.com/flashplayer/otherversions/

valami *.tar.gz -t, de fogalmam sincs, mit tegyek vele.

V: Namostan ez Unix, itt az 'én csak úrvezető vagyok, nem akarom szerelni' mentalitás nem működik. Rendszergazdaként kell futtatni a Midnight Commander nevű programot, azzal belemenni ebbe a *.tar.gz-be, és az ott lévő libflashplayer.so fájlt átmásolni a böngésző 'plugins' alkönyvtárába. Persze ehhez azt is meg kell találni, nálam pl /opt/firefox/plugins.

 

Kieg: Mivel szinte naponta van új firefox verzió, azt is megtehetjük, hogy a pluginst könyvtárat önálló életre keltve kitesszük valahová, pl:

 

# ls -l /opt/firefox /opt/firefox/plugins /opt/plugins

/opt/firefox -> firefox-20.0
/opt/firefox/plugins -> ../plugins

/opt/plugins:
libflashplayer.so
libjavaplugin_oji.so -> ../jre/plugin/i386/ns7/libjavaplugin_oji.so

 

ebből az is látszik, hogy a /opt/firefox is egy szimlink az aktuális verzióra.

NevemTeve Creative Commons License 2012.08.02 0 0 195

Ha esetleg a ~/.Xdefaults nem jut érvényre, akkor az xrdb ~/.Xdefaults parancs segít (bináris formába alakítja a szöveges beállításokat); ennek minden induláskor is futnia kellene. Ha esetleg mégsem futna, akkor pl gnome esetén: System/Preferences/Startup Applications/Add-nál:

Name: xrdb

Command: /usr/bin/xrdb /home/user/.Xdefaults

Comment: Ez miért nem történik meg magától?!

Save

Előzmény: NevemTeve (141)
NevemTeve Creative Commons License 2012.06.13 0 0 194

Azóta változott a szintax is, továbbá lett egy új tömörítő is:

 

tar cf etc.tar /etc        # semmi
tar cZf etc.tar.Z /etc   # compress (non-free!)
tar czf etc.tar.gz /etc  # gzip
tar cjf etc.tar.bz2 /etc # bzip2

tar cJf etc.tar.xz /etc   # xz

 

Az 'xz' még hatékonyabban tömörít, de még lassabb.

Előzmény: NevemTeve (9)
NevemTeve Creative Commons License 2009.12.26 0 0 193
Vagy akár:

export BROWSER=/ott/ahol/van/firefox
export TERMCMD=/some/where/xterm
Előzmény: NevemTeve (142)
NevemTeve Creative Commons License 2009.05.11 0 0 192
Kieg: Ha nem tudod, eljutott-e a kernelhez az opció, így ellenőrihetetd: cat /proc/cmdline
Előzmény: NevemTeve (62)
NevemTeve Creative Commons License 2008.11.12 0 0 191
K: Nincs véletlenül egy példád a shell-függvényekről?
K: Micsoda véletlen, pont van egy:

#!/bin/sh

function echofun ()
{
  local i;

  for i in "$@"; do
    echo "#$i#"
  done;
}

function valfun ()
{
  local i;
  local j;

  j="nincs"
  for i in "$@"; do
    if [ x"$i" = x"alma" ]; then
      j="$i";
    fi
  done;
  echo $j
}

echofun 1 "2 2" '3 3 3'

val=$(valfun körte barack alma banán)
echo $val
NevemTeve Creative Commons License 2008.10.01 0 0 190
K: Amikor úgy indítok el egy programot, hogy rákattintok egy parancsikonra a desktopon, akkor hová kerülnek a program (hiba)üzenetei?
V: Sehová, pontosabban mondva a /dev/null-ba, vagyis elvesznek. Nem szokott ezzel gond lenni, kivéve, ha valami baj van.

K: Na és olyankor mit tegyek?
V: Nyomozd ki, hogy pontosan mit csinál az az ikon (milyen programot indít milyen paraméterrel), és azt indítsd egy terminálablakból (xterm, rxvt, konsole stb).

Pl: Van nekem egy "XView" című ikonom, ami egycsapásra semmit sem csinál. Kinyomozom, hogy a /usr/bin/xview programot indítaná, amit ha parancssorból kipróbálok, megkapom, hogy:
xview: relocation error: xview: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference

ebből vagy rájövök, hogy mi a baj, vagy bepasztázom valamelyik topikba, abban a reményben, hogy valaki tud segíteni — sokkal inkább, mint ha annyit írnék, hogy "rákattintottam az ikonjára, de nem indult el".
NevemTeve Creative Commons License 2008.10.01 0 0 189
Előzmény: NevemTeve (188)
NevemTeve Creative Commons License 2008.10.01 0 0 188
K: Hogy megy bele a dátum/idő a BIOS órájából a kernelbe?
V: A hwclock program csinálja, rendszerinduláskor, a --hctosys opció hatására.

K: És mi az a kavarás, hogy UTC vagy localtime?
V: Azt is tudnia kell, hogy a BIOS-od órája hogyan van beállítva: helyi időre vagy UTC-re (leánykori néven: [link2]).

K: Nem nagyon tudom, hogy erre mit kellene mondanom... van a gépen egy Windows is, aki magától átállítja a téli/nyári időszámításnál.
V: Akkor azt állítsd be, hogy a BIOS órája 'helyi idő' szerint jár.
NevemTeve Creative Commons License 2008.09.15 0 0 187
K: Mi az a Window Manager?
V: A válasz a wikipédián is megtalálható, most inkább azt szemléltessük, hogy mi történik, ha nincs Window Managered! Gépeld be egy file-ba, és futtasd az alábbi scriptet:
#!/bin/sh
X :1 &
sleep 3
export DISPLAY=:1
xeyes &
xterm &


K: És hogyan lehet ebből kiszabadulni?!
V: Ctrl+Alt+BackSpace, vagy megpróbálhatsz elindítani egy Window Managert, az alábbi parancsok valamelyikével: twm, fvwm, kwm, gwm, icewm...

K: És közben a korábbi grafikus felületem szépen elveszett?!
V: Nem, csak meg kell keresned, próbáld meg először a Ctrl+Alt+F6-ot , ha az nem segít, akkor Ctrl+Alt+Fi, ahol i=1..12.
NevemTeve Creative Commons License 2008.09.03 0 0 186
K: Akkor ezeket a bevezető $ vagy # jeleket nem kell beírnom?
V: Nem bizony!

K: És pontosan hová nem kell beírnom? Van egy grafikus felületem, és...
V: Egy terminál-ablakot, avagy terminálemulátort kell nyitnod, nagyon sokféle van, pl xterm, eterm, rxvt, konsole, gnome-terminal, valamelyiket meg kell találnod...

K: De nekem van egy olyanom is, hogy 'Futtatás', amibe csak beírom a parancsot, és...
V: És a kimenete/hibaüzenete el is tűnik a semmiben... Ne játszd el Lusti törpöt (Lazy Smurf), hanem keresd meg szépen a terminál-programot!
Előzmény: NevemTeve (185)
NevemTeve Creative Commons License 2008.09.03 0 0 185
K: Haladó barátaim különféle parancsokat ajánlanak kipróbálásra, de valamiért – nyilván, hogy bosszantsanak – elétesznek egy $ vagy # jelet. Mire jó ez? Pl:
# mount
$ who am i

V: Nem bosszantásnak szánják, inkább arra való, hogy az egyes parancsok kezdetét jelezze. Különös jelentősége van a kettőskeresztnek(#): ez azt jelenti, hogy azt a parancsot rendszergazdaként kell végrehajtani.

K: Hogy is leszek rendszergazda, ha nem eleve úgy léptem be?
K: A 'su' vagy a 'sudo bash' parancsok valamelyikével.
NevemTeve Creative Commons License 2008.08.11 0 0 184
K: Ki vagyok én?
V: Az alábbi parancsok valamelyike segíthet:
whoami
who am i
w am i
id -un
dj Creative Commons License 2008.07.09 0 0 183
K: Ma tértem át Ubuntura. Rendszergazdai feladatot akartam végezni. Erre azt mondja, nincs jogosultságom rá. Ezzel az a bajom, hogy telepítésnél nem kért be root jelszót. Megpróbáltam bejelentkezni root/root párossal, nem jó, ezután üres jelszóval, persze csodálkoztam volna, ha beenged, nem is tette. Ez így nem jó. Mi a frissen telepített Ubuntun a root jelszó?

V: Ubuntuban alapértelmezés szerint NINCS a rootnak jelszava. Ez nem jelenti azt, hogy root sincs, csak azt, hogy a telepítés során nem csinál jelszót a root felhasználónak.
Adminisztrálni több módon is lehet, az általánosan megszokott, hogy azokat a parancsokat amelyekhez root jogosultság kell sudo paranccsal együtt adjuk ki:
$ sudo vim /boot/grub/menu.lst
vagy
$ gksu gedit /boot/grub/menu.lst
Ilyenkor root jogokkal futtatjuk a sudo/gksu utáni alkalmazást.

K: Jó értem, de én megszoktam, hogy root felhasználóra váltok amikor adminisztrálni akarok. Van erre valami megoldás?

V: Igen van több lehetőség is.
Használhatjuk a:
$ sudo -s -H

parancsot, vagy a
$ sudo bash

parancsot

K: Klassz, de én baromira hozzászoktam a su - formátumhoz és azt szeretném használni!

V: Ennek sincs akadálya, annyi a trükk, hogy jelszót kell készíteni a root felhasználónak:
$ sudo passwd root

Ha a jelszó elkészült máris használhatod a megszokott alakot.
NevemTeve Creative Commons License 2008.06.23 0 0 182
K: Akkor most hogy is van a LANG, LC_xxx és a LC_ALL prioritása?
V: A LANG a 'leggyengébb', a LC_ALL a 'legerősebb', közös bennük, hogy mindenre vonatkozik a beállított értékük, a LC_xxx -ek erősségben a kettő között vannak, és a hatásuk korlátozott (lásd: man 5 locale).

K: Akkor, hogy is nézne ki egy olyan megoldás, hogy, mondjuk, általában minden angol legyen, de a dátumformátum és a karakterkészlet magyar?
V:
export LANG=en_US.ISO8859-1
export LC_CTYPE=hu_HU.ISO8859-2
export LC_TIME=hu_HU.ISO88592

K: És a LANGUAGE?
V: Amennyire tudom, ez egy kevésbé szabványos extension, vagy van a rendszeredben, vagy nincs...
NevemTeve Creative Commons License 2008.06.20 0 0 181
Kieg: A legutolsó sorban helyesen 'eval' van, mint pl az alábbi scriptben:

[color]#!/bin/sh

#param: $1 a kérdéses device, pl /dev/hda1

eval $(vol_id "$1")

MOUNTOPTIONS=""

if [ x"$ID_FS_TYPE" = xntfs ]; then
  MOUNTOPTIONS="${MOUNTOPTIONS},ro"
fi

echo $MOUNTOPTIONS[/color]
Előzmény: NevemTeve (180)
NevemTeve Creative Commons License 2008.06.20 0 0 180
K: Ugyebár a parancssorba be lehet illeszteni egy másik parancs kimenetét, pl: ln -sfn /usr/src/linux "linux-$(uname -r) ugyanazt eredményezi, mint a ln -sfn /usr/src/linux linux-2.6.20 (ha a kernelverzióm 2.6.20).
V: Stimmel.

K: A futtatandó program nevét is lehet így, dinamikusan előállítani?
V: Igen, pl nálam: $(find /etc/alternatives/ -name javac -printf '%l') -version ugyanaz, mint /opt/jdk1.5.0_06/bin/javac -version

K: Előfordulhat, hogy nem programot akarok futtatni, hanem, mondjuk, shell-változót beállítani, de az így nem megy, pl: $(echo VAR=100) egy VAR=100 nevű programot fog hiányolni!
V: Ilyenkor segít az 'eval': eval $(echo VAR=100)

K: És mikor is lenne ez jó nekem?
V: Vannak programok, amiknek az outputját fel lehet fogni mint változó-értékadásokat, próbáld ki pl ezeket:
$ resize -s 26 81 # átméretez, és stdout-ra ír
COLUMNS=81;
LINES=26;
export COLUMNS LINES;
$ eval $(resize -s 25 80) # átméretez, és változókat állít

$ vol_id /dev/sda1 # stdout-re ír
ID_FS_USAGE=filesystem
ID_FS_TYPE=vfat
ID_FS_VERSION=FAT32
ID_FS_UUID=B340-ABA9
ID_FS_UUID_ENC=B340-ABA9
ID_FS_LABEL=TRAVIATA
ID_FS_LABEL_ENC=TRAVIATA
ID_FS_LABEL_SAFE=TRAVIATA
$ echo $(vol_id /dev/sda1) # shell-változókat állít be


Előzmény: NevemTeve (179)
NevemTeve Creative Commons License 2008.06.19 0 0 179
K: Subshellről szólva: hogyan lehetne úgy futtatni egy scriptet, hogy a hívó változóit megváltoztathassa?
V: Pont az a lényeg, hogy ne subshellként fusson. Erre való a source parancs (rövidítese a pont:'.').
Hasonlítsd össze a kettőt:
  /etc/profile # Sima futtatás (subshell), a változóbeállítások elvesznek
  . /etc/profile # Futtatás az aktuális shellben, a változóbeállítások érvényre jutnak

K: Akkor ez olyasmi, mint az exec utasítás?
V: Hasonló, de az exec-ből nincs visszatérés, próbáld ki:
  exec mc # F10 után nincs meg a shell

K: Úgy látom, hogy amikor a 'source' paranccsal futtatok egy scriptet, akkor nem figyelembe veszi az elsősorban elhelyezett kommentet, hogy pl #!/bin/sh.
V: Kicsoda nem veszi figyelembe?

K: Hát egyébként, ki veszi figyelembe?
V: A kernel, amikor az execve(2) rendszerhívást hajtja végre: beleolvas a file-ba, hogy megtudja, közvetlenül futtatható-e, vagy valamilyen interpreterrel.

K: Szóval, amikor a 'source' paranccsal futtatom a scriptet, akkor miért nem veszi a kernel (execve(2) rendszerhívása) figyelembe a srcipt elején lévő kommentet?
V: Mert nem is fut! Ilyenkor nincs se fork(2), se execve(2), a 'source'-t a shell önnönmaga hajta végre!
Előzmény: NevemTeve (170)
NevemTeve Creative Commons License 2008.05.29 0 0 178
K: Most akkor /etc/modules.conf, /etc/conf.modules, /etc/modutils/, /etc/modprobe.d/, /etc/modprobe.conf vagy esetleg /lib/modules/modprobe.conf a nyerő?
V: Ez még mindig a disztribúciódtól és a kernelverziótól függ, mindenesetre ha megtalálod ezek fájlok bármelyikét, először nézd meg az elejét, hátha van ott valami hasznos tudnivaló, pl:
# This file is automatically generated by update-modules, please do not
# edit it directly.
# If you want to change or add anything here please read /etc/modprobe.conf,
# the files in /etc/modprobe.d/ and the manpage for update-modules(8).
Előzmény: NevemTeve (21)
NevemTeve Creative Commons License 2008.05.22 0 0 177
K: És honnan tudtad, hogy a HOME meg az END épp ezeket a szekvenciákat küldik?
V: A 'showkey' régebben tudott ilyesmit, de kifejlesztették belőle, úgyhogy ezt a programot használom: shkeys.c

K: És még mi a gond?
V: Például, hogy a shiftelt F billentyűk számozása egy kicsit ellentmondásos:
az egyik megoldás szerint Shift+F1=F13, a másik szerint Shift+F1=F11. Ez utóbbira legjobb példa a Midnight Commander, nézd csak meg a /usr/*/share/mc.lib fájlját – ez egyben egy újabb példa olyan programra, amelyik nem a (vagy nem kizárólag) terminfóra hallgat.

K: És még mi a gond?
V: A legkínosabb az lehet, ha a terminálemulátorod nem azokat a szekvenciákat küldi, mint amiket a termináltípus alapján kellene. Ha nem lehet jobb belátásra bírni, még az lehet a legtisztább megoldás, ha létrehozol neki egy olyan termináltípust, ami kompatibilis az ő hibás szekvenciáival.

K: Igaz, hogy a Backspace és a Delete is szokott kavarodást okozni?
V: Hajajj! Normálisan az infocmp-ben a kbs a backspace és
kdch1 a delete, de persze itt is van rá esély, hogy:
1. a terminálemulátor nem azt küldi, amit kellene
2. a program nem a terminfot nézi, hanem a saját prekoncepciójához ragaszkodik.
Előzmény: NevemTeve (176)
NevemTeve Creative Commons License 2008.05.22 0 0 176
K: Igaz, hogy a terminal-escape-szekvenciák területe még a unixban egyébként megszokottnál is ingoványosabb?
V: Elméletileg minden nagyon egyszerű, csak a gyakorlatban vannak gondok.

K: Miért, mi az elmélet?
V: Az, hogy a szabályosan működő program a $TERM enviróból megállapítja a terminál típusát (pl linux, ansi, vt220, xterm, stb), és a terminfo(5) adatbázisból kinézi, hogy hogyan is kell kommunikálni a terminállal.

K: Miféle adatbázis?
V: A /usr/share/terminfo/*/* fájlok. Ezek bináris adatfájlok, ha érdekel a tartalmuk, használd az infocmp <terminálnév> parancsot.

K: Én is tudok ilyen fájl létrehozni? Mondjuk egy meglévőt átalakítva?
V: Rootként tic <szövegfile> paranccsal, lehetőleg ügyelj rá, hogy a fájl elején javítsd ki a nevet, nehogy a régi definíciót írja felül.

K: Jó. És hol jön a probléma?
V: Például, hogy nem minden program nézi ezt az adatbázist, hanem saját bölcs belátása szerint készül fel egy-s-más szekvenciákra. Ilyen pl a bash, amely a /etc/inputrc-ből tájékozódik. Pl nálam:
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[H": beginning-of-line
"\e[F": end-of-line
NevemTeve Creative Commons License 2008.03.18 0 0 175
K: Igaz, hogy a shell-programozásban a nulla jelenti az igent/igazat, és a nemnulla nemet/hamisat?
V: Hát így is lehet nézni, de szerencsésebb lenne azt mondani, hogy a nulla jelenti azt, hogy oké/siker, minden más a hibakód. Pl a while ciklust így lehetne elképzelni: while <rendben/talált/nincs_EOF>; do <csinálj valamit> done.

K: Mintha kicsit bizonytalan lennél ebben...
V: Hát igen, látni vélek egy gyenge pontot a dologban: szerintem szerencsésebb lenne, ha a 'true' és 'false' segédprogramok inkább a 'success' és 'fail' neveket viselnék...
NevemTeve Creative Commons License 2008.02.27 0 0 174
V: Alapvetően kétféle akadály lehetséges:
1. A PATH-jukban nincs benne a /sbin:/usr/sbin:/usr/local/sbin
2. Nincs joguk a művelethez, ezen a rendszergazda segíthet, ha akar.
De például ez valószínűleg működik a te gépeden is:

$ ifconfig
bash: ifconfig: command not found
$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:F1:B8:FB:73
...
Előzmény: Dulifuli (173)
Dulifuli Creative Commons License 2008.02.27 0 0 173
K: Miért kell rendszergazdának lenni ahhoz, hogy megtudjuk, milyen partíciók vannak a gépen? Mert a módosításuk tényleg rendszergazdai feladat, de információt kapni róluk miért lenne az?
Előzmény: NevemTeve (172)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!