ทำไม drush ถึงพูดว่า“ ไม่พบคำสั่ง” เมื่อฉันพยายามเรียกใช้คำสั่งระยะไกล [ปิด]


13

เมื่อฉันใช้คำสั่ง drush เพื่อทำอะไรบางอย่างบนเครื่องระยะไกลฉันได้รับข้อความต่อไปนี้:

bash: drush: ไม่พบคำสั่ง

มีปัญหาอะไร?


วิธีที่ฉันเห็นคำถามของคุณมันยังเกี่ยวกับการทุบตีไม่ใช่ Drupal ไม่เกี่ยวกับ drush เพราะถ้าคำสั่งไม่ได้ถูกดำเนินการมันไม่สำคัญว่าจะเป็น drush, tree, wget หรืออะไร และฉันเขียนโดยไม่เห็นคำตอบใด ๆ ความคิดเห็นของฉันมีพื้นฐานมาจากคำถามเช่นเดียวกับที่คุณถาม
Mołot

@ Mołot: เมื่อคุณรู้คำตอบ (แล้วเท่านั้น) มันอาจจะเกี่ยวกับการทุบตีเพราะคุณรู้ว่าสาเหตุของปัญหานั้นเกี่ยวกับการทุบตี แต่ก่อนที่คุณจะรู้คำตอบดูเหมือนว่าข้อความหมายถึง "Bash คือ บอกว่า Drush กำลังบอกว่าไม่พบคำสั่ง " ในตอนแรกBash จะปรากฏข้อความจาก Drush เท่านั้น แน่นอนนั่นไม่ใช่สิ่งที่เป็นจริงที่เกิดขึ้น แต่คุณไม่ทราบว่าจนกว่าคุณจะรู้คำตอบ คำถามจึงเป็นคำถามที่ผู้ใช้ Drupal อาจจะมีเกี่ยวกับ (เท่าที่พวกเขารู้ว่าบริการ) Drush คำตอบนำทุบตีไปที่หน้า
iconoclast

ฉันยังไม่เห็นว่ามีคำตอบใด ๆเมื่อฉันโพสต์ความคิดเห็นของฉันด้านบน เป็นธรรมดาในคำถามของคุณที่คุณถามเกี่ยวกับทุบตีไม่สามารถหาคำสั่ง คุณอ้างถึงบรรทัดข้อผิดพลาดที่ bash รายงานว่าไม่พบ drush คุณไม่ใช่ผู้ตอบคำถามใด ๆ ความคิดเห็นแรกของฉันอยู่ในคิวการตรวจสอบและเราไม่เห็นคำตอบที่นั่น เราไม่แม้แต่จะดูว่ามีหรือไม่
Mołot

ไม่เพียง แต่ไวยากรณ์ของโคลอนดูเหมือนจะบอกเป็นนัยว่าBash กำลังพูดว่า Drush กำลังพูดว่า ...แต่เท่าที่ผู้ใช้กังวลคำสั่งDrushจึงออกมาดังนั้นจึงเป็นเรื่องธรรมดามากที่จะตีความคำสั่งที่ถูกเรียกว่าเป็น คำสั่ง Drush ไม่ใช่ Drush
iconoclast

1
"คำตอบ" = "โซลูชัน" "คำตอบ! =" คำตอบ "คุณรู้จักวิธีแก้ปัญหาก่อนที่คุณจะอ่านคำตอบใด ๆ ซึ่งจะไม่เป็นจริงสำหรับทุกคนคำถามจะต้องจัดหมวดหมู่ตามเนื้อหาของคำถามไม่ใช่เนื้อหาของคำตอบ (หรือ" วิธีแก้ปัญหา ") ชอบ).
iconoclast

คำตอบ:


15

ข้อความนี้มาจากเครื่องระยะไกลบ่นว่ามันไม่เข้าใจว่าจะหาdrushไฟล์ที่เรียกใช้งานได้หรือไม่ Drush บ่นว่ามันไม่สามารถหาคำสั่ง (sub) ที่คุณอาจจะพยายามให้ถึงแม้ว่าเครื่องหมายวรรคตอนจะแนะนำให้ดูในภายหลัง (ถ้าbash:หมายความว่า Bash ส่งข้อความถึงคุณคุณdrush:ควรหมายถึงสิ่งเดียวกัน - หากมีความสอดคล้องกัน แต่จริงๆแล้วมันมีจุดมุ่งหมายเพื่อหมายถึงdrush:หัวเรื่องของข้อความไม่ใช่แหล่งที่มาของข้อความที่ส่งbash:ถึงคุณ ชัดเจนยิ่งขึ้นถ้านำสิ่งที่สอง:ออกไป)

Drush ลงชื่อเข้าใช้เครื่องระยะไกลของคุณผ่าน ssh แต่ไม่ใช่การเข้าสู่ระบบแบบโต้ตอบปกติดังนั้นจึงไม่ได้จัดหา. bash_profile อย่างไรก็ตามทำแหล่งไฟล์. bashrc

เพิ่มเส้นทาง drush (ไม่รวม drush เองเพียงแค่รวมไดเรกทอรีที่มี drush) ไปยังตัวแปร PATH ใน. bashrc ระยะไกลของคุณและทั้งหมดควรจะดี ตัวอย่างเช่นอาจมีลักษณะเช่นนี้:

PATH=$PATH:/usr/local/zend/bin

8
นอกจากนี้ยังมองออกต่อไปนี้ในของคุณ ~ / [ -z "$PS1" ] && return.bashrc: บางแพลตฟอร์มใช้สิ่งนี้เพื่อประกันตัวหากทำงานในโหมดไม่โต้ตอบ ยกตัวอย่างเช่น Ubuntu วางสิ่งนี้ไว้ใน. bashrc เริ่มต้นของคุณ หากคุณตั้งค่าเส้นทางของคุณคุณต้องตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าไว้ก่อนเงื่อนไขใด ๆ เช่นที่อาจบังคับให้ออกก่อน
greg_1_anderson

3
ขอบคุณสำหรับคำตอบและแสดงความคิดเห็น ฉันต้องแก้ไขพา ธ.bashrcก่อนบรรทัด # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esacบน Ubuntu 14.04
Shaun Dychko
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.