ฉันจะเพิ่มไดเรกทอรีไปยัง MANPATH หรือ INFOPATH ได้อย่างไร


19

ฉันคิดว่าฉันเข้าใจคำแนะนำในวิธีเพิ่มไดเรกทอรีใน PATH หรือไม่ เกี่ยวกับการเพิ่มไดเรกทอรีไปที่ $ PATH แต่ฉันไม่เข้าใจวิธีเพิ่มไดเรกทอรีใน $ MANPATH หรือ $ INFOPATH

นอกจากนี้ยัง - ใน googling รอบสำหรับความช่วยเหลือฉันได้สังเกตเห็นว่าบางครั้งการพูดทิศทางและบางครั้งพวกเขากล่าวว่าexport PATH=/usr/share/lib/something:$PATH export PATH=$PATH:/usr/share/lib/somethingมันคืออะไร

คำตอบ:


24
  1. 2 เหล่านี้เกือบจะเหมือนกัน:

    export PATH=/usr/share/lib/something:$PATH 
    export PATH=$PATH:/usr/share/lib/something
    

    ข้อแตกต่างเพียงอย่างเดียวคือสิ่งแรกที่ทำให้ไดเรกทอรีที่จะเพิ่มในด้านหน้าและคนที่สองวางไว้ข้างหลังไดเรกทอรีปัจจุบัน$PATHมา จะสำคัญก็ต่อเมื่อมีคำสั่งอยู่ภายใน/usr/share/lib/somethingซึ่งมีชื่อเดียวกันอยู่ในไดเรกทอรีใดไดเรกทอรี$PATHหนึ่ง

  2. ในการเพิ่มไดเรกทอรีไปยัง$MANPATHหรือ$INFOPATHตามที่ต้องการจากลิงค์ที่คุณโพสต์คุณทำได้โดยการเปลี่ยนไฟล์ config ภายในลิงค์

    มันบอกว่าจะเปิดรุ่นทั่วโลกbash.bashrcด้วย:

    sudo vi /etc/bash.bashrc
    

    และเพิ่มในตอนท้าย:

    PATH=/usr/local/texlive/2010/bin/x86_64-linux:$PATH; export PATH
    MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH
    INFOPATH=/usr/local/texlive/2010/texmf/doc/info:$INFOPATH; export INFOPATH
    

    ชุดนี้$PATH, และ$MANPATH $INFOPATHและยังบอกให้คุณแก้ไข/etc/manpath.configด้วย:

    sudo vi /etc/manpath.config
    

    และเพื่อเพิ่ม

    MANPATH_MAP /usr/local/texlive/2010/bin/x86_64-linux /usr/local/texlive/2010/texmf/doc/man
    

    # set up PATH to MANPATH mappingภายใต้


หากคุณไม่แน่ใจเกี่ยวกับสิ่งนี้ให้สำรองข้อมูลลำดับที่ 1 (ไม่เป็นเรื่องเลวร้าย) ด้วย:

sudo cp /etc/bash.bashrc /etc/bash.backup_$(date +"%Y_%m_%d").bashrc
sudo cp /etc/manpath.config /etc/manpath.backup_$(date +"%Y_%m_%d").config

สตริงแปลก ๆ เปลี่ยนเป็นวันที่ปัจจุบัน หากคุณทำผิดพลาดเพียงแค่คัดลอกข้อมูลสำรองกลับไปที่ไฟล์ต้นฉบับ:

$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1  test1.2014_11_14  

1
ฉันติดตั้ง texlive 2012 บน Ubuntu Precise แล้วecho $MANPATHกลับ/usr/local/texlive/2012/texmf/doc/manมาหาฉัน เมื่อฉันเพิ่มเส้นทางไปยังรายงานทุบตีการกำหนดค่า/usr/local/texlive/2012/texmf/doc/man:/usr/local/texlive/2012/texmf/doc/manและ zsh /usr/local/texlive/2012/texmf/doc/manยังคงรายงาน สำหรับ zsh /etc/zsh/zshrcฉันจะเพิ่มเส้นทางไปยัง ฉันไม่แน่ใจว่าสิ่งนี้ถูกต้องหรือไม่ ฉันยังลองแก้ไข/etc/environmentตามที่แนะนำที่นี่แต่ไม่ประสบความสำเร็จ
JJD


ฉันสามารถเห็นคำสั่งอะไรหลังจากเขียนMANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH? ฉันพยายามman tlmgrแล้วก็บอกว่ามันไม่มีอยู่จริง
อาร์ตูโร

2

หากหน้าคนของคุณอยู่/usr/local/myproject/manสิ่งที่คุณต้องทำคือเพิ่มเข้าไปใน (ตอนจบ) /etc/manpath.config:

MANDATORY_MANPATH        /usr/local/myproject/man

0

x:y:z:$PATHหรือ$PATH:x:y:z?

แตกต่างกันเล็กน้อย $PATHมี:รายการสถานที่ที่แยกซึ่ง bash (เชลล์ / เทอร์มินัล) ควรตรวจสอบโปรแกรม

ตัวอย่างเช่นถ้าคุณพิมพ์catทางสถานีเข้าใจในสิ่งที่หมายถึงคือการมองผ่านครั้งแรกที่สององค์ประกอบที่สามของ$PATHแล้วบันทึกcatสถานที่แรกพบสำหรับสวดภายหลัง

หากฉันมีโปรแกรมสองเวอร์ชันที่ต่างกันในสองที่ที่ต่างกันโดยเลือกเป็นหนึ่งในนั้นและ$PATHบอกให้เชลล์ค้นหาตามลำดับที่ไม่ถูกต้องแสดงว่ามีปัญหา มิฉะนั้นจะไม่มีปัญหา


ส่งออก

เปิดเทอร์มินัลแล้วพิมพ์

echo $a
a=5
echo a
echo $a

คุณจะเห็นว่าa=5ตั้งค่าตัวแปรและ$aอ้างอิงถึงชื่อตัวแปรไม่ใช่ค่า

เปิด terminal echo $aที่สองและประเภท มันควรจะว่างเปล่าอีกครั้ง

ความแตกต่างระหว่างexportและการมอบหมาย ( =) จะมีการอธิบายที่นี่: /programming/1158091/defining-a-variable-with-or-without-export

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.