ไม่สามารถเพิ่มไฟล์ปฏิบัติการลงใน PATH ใน Linux


0

ฉันมีสิ่งนี้ในของฉัน ~/.bash_profile:

PATH=$PATH:~/Downloads/sublimetext
export PATH

แต่ sublimetext ในโฟลเดอร์จะไม่ถูกเพิ่มไปยังเส้นทาง Sublime Text ให้เอาต์พุตนี้เมื่อส่งไปยังคำสั่ง file:

sublime_text: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

1
คุณสามารถแสดงผลลัพธ์ของ: ps -p $$ | tail -1 | awk '{print $NF}', ls -lad ~/Downloads/sublimetextและ ls -la ~/Downloads/sublimetext/sublime_text?
Christopher Neylan

ดูเหมือนว่าที่นี่คือปัญหาของคุณ PATH งบไม่ได้ source d ดังนั้นคุณต้องแน่ใจว่าคุณทำอย่างนั้น: source ~/.bash_profile แล้วมองไปที่ echo $PATH.

คำตอบ:


3

PATH มีไดเรกทอรีไม่ใช่ไฟล์ที่ปฏิบัติการได้ ลอง PATH=$PATH:~/Downloads. แม้ว่าจริงๆแล้วคุณไม่ควรวางไดเรกทอรีดาวน์โหลดลงในพา ธ ของคุณ ย้ายไฟล์ปฏิบัติการไปยังตำแหน่งที่เหมาะสม ทำ ~/bin ไดเรกทอรีตัวอย่างเช่น


ฉันย้ายข้อความย่อยไปยัง ~ / bin และเพิ่มเข้าไปในเส้นทางของฉัน สิ่งที่เป็นข้อความประเสริฐเป็นไดเรกทอรีซึ่งมีไฟล์ไบนารี sublime_text ดังนั้นฉันกำลังอ้างอิงไดเรกทอรีในเส้นทางของฉันไม่ใช่ไดเรกทอรี อย่างไรก็ตามมันจะไม่เกิดขึ้นเมื่อฉันพยายามเรียกใช้จากเชลล์
fergusdawson

ดังนั้นให้เจาะจงมากขึ้นเกี่ยวกับ "จะไม่เกิดขึ้น" จะเกิดอะไรขึ้น มีข้อผิดพลาดหรือไม่?
jjlin

สิ่งที่ฉันหมายถึงคือมันไม่ได้รวมอยู่ในเส้นทาง ฉันได้รับข้อผิดพลาด 'ไม่พบ cmd' มาตรฐานหากฉันพยายามเรียกใช้โปรแกรมจากนอกไดเรกทอรีที่เก็บไว้ฉันจะประกาศอย่างถูกต้องใน bash_profile เพราะถ้าฉันทำสิ่งเดียวกันกับโปรแกรมอื่น (สคริปต์ python เช่น ) ใช้งานได้และฉันสามารถโทรหาได้จากทุกที่ ดังนั้นคุณสามารถเห็นได้จากสิ่งนี้ว่าปัญหาไม่ได้เกิดจากไฟล์ที่ไม่สามารถเรียกใช้งานได้หรือไม่สามารถเพิ่มไฟล์ลงในพา ธ ได้อย่างถูกต้อง หวังว่าฉันจะชัดเจนพอ
fergusdawson

ดูเหมือนคุณ PATH ยังไม่ถูกต้องแล้ว คุณสามารถอัปเดตคำถามของคุณด้วยผลลัพธ์ของ echo $PATH?
jjlin

1

ดูเหมือนว่าคุณกำลังแก้ไข. bash_profile ผิด หากคุณเป็นผู้ใช้รูทคุณต้องแก้ไข /root/.bash_profile ลองจัดหาเป็น source /home/username/.bash_profile หรือ source /root/.bash_profile จากนั้นตรวจสอบ $ PATH

โปรดติดตามสรุปที่ http://www.troubleshooters.com/linux/prepostpath.htm#_Summary


0

มีการตั้งค่าสิทธิ์ให้สามารถเรียกใช้งานได้หรือไม่ ( chmod o+x ~/Downloads/sublimetext/sublime_text เพื่อทำมัน)


ฉันได้ดำเนินการด้วย. /sublime_text ดังนั้นจึงสามารถเรียกใช้งานได้ ฉันลองคำสั่งของคุณแล้วมันก็ไม่เปลี่ยนแปลงอะไรเลย
fergusdawson

0

ก่อนปิดการตรวจสอบว่าคุณควรใช้รุ่น 32 บิตหรือ 64 บิต

สร้างเชลล์สคริปต์ครั้งที่สอง:

#!/bin/sh
# sublime shell script
# make sure there is no spaces in path.

if [ -d "$HOME/Downloads/SublimeText2" ] ; then
    PATH="$HOME/Downloads/SublimeText2:$PATH"
fi

sublime_text $@
#EOS

ตอนนี้วางลงใน ~ / bin ของคุณและทำให้มันปฏิบัติการได้

$ chmod +x sublime

~/Desktop$ sublime -h | head -1

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