/home/user/.local/

Fórumok

Sziasztok.

Kiwi linux nevű distrib előtt ülök, meg sem merem mondani, hogy hol.
a tárgyban szereplő könyvtárat szeretném oly módon kihasználni, hogy egy debianos, apt-get-tel letöltött wine-t csomagolnék ki oda.

Kérdésem:
1. Ha az apt-get nem rootként van használva a letöltésnél sem, hogyan bírható rá arra, hogy a júzer könyvtáraiba telepítse azt, amit használni szeretnék? (szerintem sehogy)
2. Ha manuálisan mc-vel kicsomagolom a fenti könyvtárba, felléphet-e komplikáció, mondjuk bármi, pl. ilyen:

user:~/.local/usr/bin$ ./wine --help
./wine: error while loading shared libraries: libwine.so.1: cannot open shared object file: No such file or directory
user:~/.local/usr/bin$

Sosem használtam a fent említett könyvtárat, nem volt rá szükségem. Csak most lenne..

Hozzászólások

Esetleg beállítod az LD_LIBRARY_PATH (??? mintha ez már deprecated lenne, de nem tudom, akkor mi van helyette) változót arra a könyvtárra, ahogy a hiányolt fájl van és úgy próbálod?

Ez az, amit most nem tudok hogyan is kell. Az /etc/profiles-t nem szerkeszthetem, a júzerkönyvtárbelit igen.

Java esetében ez van:
export LD_LIBRARY_PATH=$JAVA_PROFILER_HOME:$TPTP_AC_HOME/lib:$LD_LIBRARY_PATH

egy kézzel felhútott wine esetében is hasonló a dolog?
---
--- A gond akkor van, ha látszólag minden működik. ---
---

Egész sok programot fel tudsz telepíteni a saját könyvtáradba is, viszont ha nem figyelsz a függvénykönyvtárak verzióira, könnyen működésképtelenné teheted a rendszerprogramokat is (legalábbis amíg nem törlöd a .local könyvtárat ill. nem állítasz mindent vissza).

Megosztok egy-két szkriptet, amit használni szoktam. Nem árt, ha valamelyest érted is a működésüket, mert néha előfordul, hogy reszelni kell egy kicsit.

~/bin/apturis
#!/bin/bash
apt-get --yes --print-uris install "$@" | grep -e 'tp://.*deb' | cut -d ' ' -f1 | sed "s/^'//g;s/'$//g"

Használat: Megadsz paraméterként pár csomagnevet, kilistázza a letöltendő .deb fájlok url-jét a függőségekkel együtt, kivéve azokat, amik már (rendszergazdaként) telepítve vannak. Ezeket egyben le is töltheted mondjuk egy apturis ... | wget -i - paranccsal.

~/bin/li
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Local install of debian packages" >&2
echo "Usage: $0 package.deb" >&2
exit 1
fi
echo -n "Unpacking $1..." >&2
dpkg-deb -x "$1" $HOME/.local
echo " [Done]" >&2

Használat: A paraméterként átadott .deb fájlt kibontja a ~/.local könyvtáradba. A lenti beállítások mellett ez olyan, mintha feltelepítenéd. A függőségek kezelése itt nem megy automatikusan, az előző körben letöltött összes csomagra meg kell hívnod.

.bashrc-be:
export PATH=$HOME/bin:$HOME/.local/bin:"$PATH"
export LD_LIBRARY_PATH=$HOME/.local/usr/lib
export PKG_CONFIG_PATH=$HOME/.local/usr/lib/pkgconfig
export PYTHONPATH="$PYTHONPATH":$HOME/.local/usr/lib/python
export MANPATH="$MANPATH":$HOME/.local/usr/share/man
export INFOPATH="$INFOPATH":$HOME/.local/usr/share/info
export CFLAGS="-I$HOME/.local/usr/include/"
export CPPFLAGS="-I$HOME/.local/usr/include/"
export LDFLAGS="-L$HOME/.local/usr/lib/"

Ezekkel a beállításokkal a rendszer tudni fogja, hogy a különböző komponenseket a .local alatt is keresse. Az egyes sorok jelentése: programok, dinamikus függvénykönyvtárak (.so), pkg-config csomagleíró fájlok, python modulok, súgó, azaz man ill. info oldalak, c és c++ fejlécek, statikus függvénykönyvtárak (.a).

A .bashrc módosítása értelemszerűen csak akkor lép életbe, amikor újraindítod a shell-t. Persze source-olhatod kézzel is.

A csomagkezelőhöz képest ez a megoldás eléggé fapados, például nem tudsz csomagokat eltávolítani, szóval ha egyszer elrontod, kezdheted az egészet elölről. Ha bizonytalan vagy, érdemes telepítés előtt másolatot készíteni a .local-ról.

user:~/.local$ ./dpkg-deb -x ./wine1.4-i386_1.4-0ubuntu4.1_i386.deb ./
dpkg-deb (alfolyamat): unable to execute tar (tar): Nincs ilyen fájl vagy könyvtár
dpkg-deb: error: tar alfolyamat 2 hibakóddal kilépett
user:~/.local$

Szerintem legjobb, ha maradok a saját gépemnél és a saját distribemnél..
Zsibbasztó, de belátom, hogy néha ez a leghelyesebb.

---
--- A gond akkor van, ha látszólag minden működik. ---
---