Kirjoittaja Aihe: locate tietokanta ei päivity ?  (Luettu 1699 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 663
    • Profiili
locate tietokanta ei päivity ?
« : 18.05.10 - klo:10.46 »
Tein scriptin hakemistoon /usr/bin. Nyt haluaisin siirtää sen hakemistoon /usr/local/bin.
Siirto onnistuu, mutta tämän jälkeen järjestelmä ei löydä sitä, vaan ilmoittaa:
- bash: /usr/bin/loki.sh: Tiedostoa tai hakemistoa ei ole

Kuukkelin ohjeiden mukaisesti suoritin komennon updatedb
- locate loki.sh antaa nyt oikean tuloksen, scriptin kutsu antaa kuitenkin saman virheen
komento updatedb.mlocate ei paranna tilannetta.

cp /usr/local/bin/loki.sh /usr/local/bin/LLoki.sh
locate LLoki.sh antaa oikean tuloksen, scriptin LLoki.sh kutsu toimii

Onko ideoita, miten tämän locaten saisi järkiinsä ?

Scripti sinänsä ei ole ihmeellinen, tein sen vaan helpottamaan rootin lokikirjan ylläpitoa:

#!/bin/bash
joe /home/root/uptime.txt

juyli

  • Vieras
Vs: locate tietokanta ei päivity ?
« Vastaus #1 : 18.05.10 - klo:11.08 »
#!/bin/bash
joe /home/root/uptime.txt

Jos et ole erikseen tehnyt /home/root hakemistoa ei sitä oletuksena ole. Root:in kotihakemisto on juuressa /root
Usein updatedb ajetaan ajastettuna, esim. konetta käynnistetteässä tms. Yleensä en itse käytä tuota ajastusta updatedb:n vuoksi, vaan ajan ohjelman tarvittaessa tuoreempi tieto tiedostoista.
« Viimeksi muokattu: 18.05.10 - klo:11.10 kirjoittanut juyli »

SuperOscar

  • Käyttäjä
  • Viestejä: 4063
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: locate tietokanta ei päivity ?
« Vastaus #2 : 18.05.10 - klo:11.33 »
Tein scriptin hakemistoon /usr/bin. Nyt haluaisin siirtää sen hakemistoon /usr/local/bin.
Siirto onnistuu, mutta tämän jälkeen järjestelmä ei löydä sitä, vaan ilmoittaa:
- bash: /usr/bin/loki.sh: Tiedostoa tai hakemistoa ei ole

Locatella ei tämän asian kanssa ole mitään tekemistä. Se on pelkkä käyttäjän apuväline, polkuhaut tehdään aivan riippumatta siitä.

Kuten Mistofeleeskin taitaa epäillä, sanoisin, että nyt ei joe-ohjelmaa tai jotakin sen tarvitsemista kirjastoista löydy.
pöytäkone 1, NUC: openSUSE Leap 15.6, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; RPi 1: FreeBSD 14-RELEASE; RPi 2: LibreELEC 11

retu

  • Käyttäjä
  • Viestejä: 949
    • Profiili
Vs: locate tietokanta ei päivity ?
« Vastaus #3 : 18.05.10 - klo:13.28 »
Tein scriptin hakemistoon /usr/bin. Nyt haluaisin siirtää sen hakemistoon /usr/local/bin.
Siirto onnistuu, mutta tämän jälkeen järjestelmä ei löydä sitä, vaan ilmoittaa:
- bash: /usr/bin/loki.sh: Tiedostoa tai hakemistoa ei ole
Olen törmännyt samaan eli ohjelman/scriptin siirto toiseen paikkaan aiheuttaa tuon virheilmoituksen. En ole tutkinut tarkemmin, mutta kyse lienee siitä että bash (tai mikä lienee) pitää ohjelmien paikkoja muistissaan. :o Uloskirjautuminen auttanee. Kokeile antaa komento niin että mukana on koko polku:
Koodia: [Valitse]
$ /usr/local/bin/loki.shJos toimii, silloin kyse on todennäköisesti tästä.

Ps. locate ei tosiaan liity tähän asiaan mitenkään.

Taleman

  • Käyttäjä
  • Viestejä: 79
    • Profiili
Vs: locate tietokanta ei päivity ?
« Vastaus #4 : 18.05.10 - klo:14.28 »
Tein scriptin hakemistoon /usr/bin. Nyt haluaisin siirtää sen hakemistoon /usr/local/bin.
Siirto onnistuu, mutta tämän jälkeen järjestelmä ei löydä sitä, vaan ilmoittaa:
- bash: /usr/bin/loki.sh: Tiedostoa tai hakemistoa ei ole

Tuo on oikea ilmoitus, koska itse siirsit tiedoston pois tuosta hakemistosta. Komentotulkki bash nopeuttaa komentojen hakua pitämällä kirjaa siitä missä mikäkin komento oli, ja nyt se kirjanpito ei tältä osin pidä paikkaansa.

Tilanne korjaantuu, kun käynnistää uuden bash-tulkin, eli avaa uuden pääteikkunan tai kirjautuu sisään toiselta konsolilta. Tuossa samassa komentotulkissa jossa tuli ilmoitus ettei tiedostoa ole, voi komentaa
hash loki.sh
tai
hash -r
ja noiden pitäisi saada se sisäinen kirjanpito korjattua ja komennot alkaa löytymään, jos vaan se uusi hakemisto /usr/local/bin on hakupolussa eli PATH-muuttujassa (katso komentamallla echo $PATH).
Tapio Lehtonen
Pori