mboost-dp1

libexec path


Gå til bund
Gravatar #1 - BurningShadow
4. maj 2012 07:34
Jeg sidder lige og leger lidt mere med mine PATHs, og jeg har bl.a. PATH og LIBRARY_PATH, men hvor hører libexec til?
Jeg spørger, fordi navnet jo antyder at den enten skal tilføjes til LIBRARY_PATH eller muligvis have sin egen. Indholdet antyder der i mod, at den muligvis skal tilføjes til PATH.
Gravatar #2 - kasperd
4. maj 2012 08:19
BurningShadow (1) skrev:
Jeg sidder lige og leger lidt mere med mine PATHs, og jeg har bl.a. PATH og LIBRARY_PATH, men hvor hører libexec til?
Jeg kender til PATH og LD_LIBRARY_PATH. PATH er til de programfiler, som man vil kunne afvikle fra sin shell (eller andre steder, hvor man indtaster kommandoer). LD_LIBRARY_PATH er til libraries, som ikke ligger i en af standardlokationer, hvor linkeren altid kigger. I de fleste tilfælde har man ikke brug for LD_LIBRARY_PATH fordi man har libraries liggende i standardlokationerne.

Et libexec directory er beregnet til programfiler, som ikke er beregnet til at blive kaldt direkte fra kommandolinien. Programfilerne i libexec er beregnet til at blive kaldt internt fra andre programmer og libraries. Dermed hører libexec ikke til i hverken PATH eller LD_LIBRARY_PATH. Jeg ved ikke, hvordan man normalt finder sit libexec directory. Jeg har aldrig haft brug for at sætte det op. Jeg formoder at placeringen af libexec directoriet ligger fast når det kaldene program eller library compileres.
Gravatar #3 - BurningShadow
4. maj 2012 08:25
Super, tak skal du have :-)
Det forklarer også hvorfor jeg ikke kunne finde et ordentligt svar andre steder på nettet.
Gravatar #4 - BurningShadow
4. maj 2012 09:15
Er der mon en nem måde, at finde ud af hvilke environment variables, der er defineret. Jeg bruger bash.
Gravatar #5 - qed
4. maj 2012 09:17
BurningShadow (4) skrev:
Er der mon en nem måde, at finde ud af hvilke environment variables, der er defineret. Jeg bruger bash.


Det lyder som kommandoen env, du leder efter.
Gravatar #6 - BurningShadow
4. maj 2012 09:19
Det var lige den jeg manglede :-)
Gravatar #7 - BurningShadow
8. maj 2012 19:08
Nu hvor vi er igang med PATH, er det så muligt at update PATH i en åbn shell, og få ændringerne til at slå igennem i en anden (alle)?

Det er mest fordi jeg kan gøre det med messages, men der er jo ingen grund til at (gen)opfinde den dybe tallerken, hvis nu der allerede findes en måde at gøre det på, i bash.
Når det kommer til shell's så er det nok bedst at gøre tingende så tæt som muligt, på den måde andre gør det.

Bør nok lige indskyde, at det ikke er super vigtigt, da det jo trods alt er relativt sjældent, at man installerer ekstra *NIX software, og dem der har brug for det, primært er udviklere, og derfor må antages at kunne køre "updatepath" kommandoen, uden at blive skræmt væk af det...
Gravatar #8 - kasperd
8. maj 2012 20:31
BurningShadow (7) skrev:
Nu hvor vi er igang med PATH, er det så muligt at update PATH i en åbn shell, og få ændringerne til at slå igennem i en anden (alle)?
Mit bedste forslag ville være at sætte følgende kommando i en af bash rc filerne:

PROMPT_COMMAND='. /etc/update-path'

Og så i /etc/update-path have et indhold i stil med:

export PATH="$(/bin/update-path)"

Programfilen /bin/update-path kan så bruge getenv("PATH") til at finde ud af hvad PATH er for den shell den blev kaldt fra. Og den skriver på stdout hvad den skal ændres til.

Ulempen er at efter en ændring er blevet lavet træder den først i kraft i andre shells efter den næste kommando er kørt.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login