Score:0

./configure: ข้อผิดพลาด: ไม่สามารถระบุไดเร็กทอรีการทำงานได้

ธง in

ฉันรู้สึกผิดหวังอย่างมากกับข้อผิดพลาดนี้ ตอนนี้เป็นที่น่าสังเกตว่าการเรียกใช้ cd "$(pwd)" และสะท้อนตัวแปรสภาพแวดล้อมทั้งหมด ดูเหมือนทุกอย่างจะเป็นไปตามลำดับ

ขณะนี้ฉันกำลังพยายามติดตั้ง unrealircd 5.2.0.1 (แต่ฉันได้รับข้อผิดพลาดนี้เมื่อเรียกใช้สิ่งใดๆ ที่เกี่ยวข้องกับ ./configure script)

นี่คือผลลัพธ์ของฉันสำหรับการเสแสร้งในข้อผิดพลาดของฉัน:

 _ _ _ ___________ _____ _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _ | | | | | / | | / _ |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
 \___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|

                               โปรแกรมกำหนดค่า
                                สำหรับ UnrealIRCd 5.2.0.1
[SNIP]
คุณต้องการส่งพารามิเตอร์ที่กำหนดเองเพื่อกำหนดค่าหรือไม่
คนส่วนใหญ่ไม่ต้องการสิ่งนี้และสามารถกด ENTER
มิฉะนั้น โปรดดู `./configure --help' และเขียนที่นี่:
[] ->
รันด้วย 4 กระบวนการสร้างพร้อมกันตามค่าเริ่มต้น (make -j4)
./configure --with-showlistmodes --enable-ssl --with-maxconnections=9999999 --with-bindir=/root/unrealircd/bin --with-datadir=/root/unrealircd/data --with-pidfile= /root/unrealircd/data/unrealircd.pid --with-confdir=/root/unrealircd/conf --with-modulesdir=/root/unrealircd/modules --with-logdir=/root/unrealircd/logs --with- cachedir=/root/unrealircd/cache --with-docdir=/root/unrealircd/doc --with-tmpdir=/root/unrealircd/tmp --with-privatelibdir=/root/unrealircd/lib --with-scriptdir= /root/unrealircd --with-nick-history=100 --with-permissions=0600 --enable-dynamic-linking
กำหนดค่า: ข้อผิดพลาด: ไม่สามารถระบุไดเร็กทอรีการทำงานได้

อย่างที่ฉันพูดไปแล้ว ฉันได้รับข้อผิดพลาดนี้เมื่อติดตั้งสิ่งใดๆ ที่เกี่ยวข้องกับสคริปต์ ./configure นอกจากนี้ยังเป็นที่น่าสังเกตว่าในฐานะผู้ใช้ฉันไม่สามารถเรียกใช้ ./configure ได้โดยมีข้อผิดพลาดเดียวกัน

cating /etc/passwd บอกว่าโฮมไดเร็กตอรี่ที่เหมาะสมสำหรับผู้ใช้ดังกล่าว

ตอนนี้ปัญหาของฉันคืออะไร

cn flag
Ray
"เมื่อติดตั้งสิ่งใดที่เกี่ยวข้องกับ ./configure" หมายความว่าสคริปต์ `configur` ใดๆ ที่ไม่ใช่เฉพาะสำหรับโปรแกรมที่คุณกล่าวถึงข้างต้นเท่านั้นที่ทำให้เกิดปัญหาข้างต้นหรือไม่ นอกจากนี้ ปัญหาของคุณไม่เกี่ยวข้องกับ `g++`, `gcc` หรือ `cmake` (เท่าที่ฉันสามารถบอกได้) ดังนั้น ฉันจึงลบออกจากแท็กของคุณ
Freak avatar
in flag
สคริปต์กำหนดค่าใด ๆ
HuHa avatar
es flag
คุณกำลังเรียกใช้สิ่งนี้ในฐานะรูทหรือไม่ อย่าทำอย่างนั้น ส่วนสุดท้าย (`make install`) ต้องการสิทธิ์ root และควรรันเป็น `sudo make install` แต่แน่นอนว่า **ไม่ใช่** ส่วน `./configure` หรือส่วน `make` คุณกำลังเปิดประตูให้กับผู้โจมตี
HuHa avatar
es flag
"สคริปต์กำหนดค่าใด ๆ " เป็นการอ้างสิทธิ์ที่เป็นตัวหนา ฉันไม่เชื่ออย่างนั้น ฉันค่อนข้างแน่ใจว่าสิ่งนี้ถูกจำกัดไว้ที่ _this_ กำหนดค่าสคริปต์
hr flag
ถ้ามัน * เป็น * "สคริปต์กำหนดค่าใด ๆ " จริง ๆ แสดงว่ามีปัญหากับมาโคร autoconf `_AC_INIT_DIRCHECK` (หรือหนึ่งในคำสั่งที่ใช้ - `pwd`, `ls`, `cd`)
Freak avatar
in flag
pwd, ls และ cd ของฉันทำงานตามที่คาดไว้ และข้อผิดพลาดนี้ไม่ได้จำกัดเพียงแค่ _this_ กำหนดค่าสคริปต์เท่านั้น ฉันจะแก้ไข/เปลี่ยนมาโคร _AC_INIT_DIRCHECK ของฉันได้อย่างไร นี่เป็นตัวแปรสภาพแวดล้อมหรือไม่
hr flag
@Freak ฉันได้เพิ่มคำตอบพร้อมข้อมูลและเคล็ดลับการดีบักด้านล่าง
Score:1
ธง es

เอกสารระบุอย่างชัดเจนว่า:

https://www.unrealircd.org/docs/FAQ#Compile.2Fbuild_problems

ปัญหาการคอมไพล์/สร้าง

ฉันรัน ./configure และพบปัญหามากมาย

ห้ามใช้ ./configure! เรียกใช้ ./Config แทน

https://www.unrealircd.org/docs/Installing_from_source

กำลังรวบรวม

ขั้นแรก ให้เรียกใช้สคริปต์ ./Config ซึ่งจะถามคำถามจำนวนหนึ่ง คุณสามารถกด Enter เพื่อยอมรับคำตอบเริ่มต้น

./กำหนดค่า

ตอนนี้คอมไพล์ UnrealIRCd โดยเรียกใช้ make อาจใช้เวลาหนึ่งนาที (หรือสองนาที):

ทำ

Freak avatar
in flag
ฉันใช้ ./Config มันเรียกใช้การกำหนดค่าเป็นส่วนหนึ่งของการดำเนินการ มันทำงานเฉพาะ ./configure ในตอนท้ายของมัน และอย่างที่ฉันบอกไป ข้อผิดพลาดนี้มาพร้อมกับการเรียกใช้งานสคริปต์อื่นๆ ที่ใช้ ./configure
Score:0
ธง hr

ตามข้อตกลง กำหนดค่า เป็นเชลล์สคริปต์ POSIX ที่สร้างขึ้นจากไฟล์ configuration.ac หรือ กำหนดค่าใน ไฟล์เทมเพลตโดย GNU คอนเฟิร์มอัตโนมัติ โปรแกรม - ทั้งในขณะติดตั้งหรือก่อนแจกจ่ายโดยผู้ดูแลซอฟต์แวร์

ข้อความแสดงข้อผิดพลาด

กำหนดค่า: ข้อผิดพลาด: ไม่สามารถระบุไดเร็กทอรีการทำงานได้

มาจากมาโคร autoconf มาตรฐานชื่อ _AC_INIT_DIRCHECK และกำหนดไว้ใน /usr/share/autoconf/autoconf/general.m4:

AC_DEFUN([_AC_INIT_DIRCHECK],
[m4_divert_push([PARSE_ARGS])dnl

ac_pwd=`pwd` && ทดสอบ -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
  AC_MSG_ERROR([ไม่สามารถระบุไดเร็กทอรีการทำงาน])
ทดสอบ "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
  AC_MSG_ERROR([pwd ไม่รายงานชื่อไดเร็กทอรีการทำงาน])

คุณอาจพบข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับสาเหตุของข้อผิดพลาดใน config.log ไฟล์. หรือคุณสามารถเรียกใช้โค้ดเดียวกันในเชลล์ POSIX แบบไม่โต้ตอบได้ดังนี้:

/bin/sh -c '
  ac_pwd=`pwd` && ทดสอบ -n "$ac_pwd" && 
  ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .`
'
ก้อง $?

หรือแบ่งเป็นส่วนๆ เช่น

/bin/sh -c 'ac_pwd=`pwd` && ทดสอบ -n "$ac_pwd"'; ก้อง $?

ความเป็นไปได้อย่างหนึ่งสำหรับความล้มเหลวคือไดเร็กทอรีการทำงานไม่มีการตั้งค่าบิตที่เรียกใช้งานได้:

$ chmod -x .

$ /bin/sh -c '
  ac_pwd=`pwd` && ทดสอบ -n "$ac_pwd" &&
  ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .`
'
/bin/sh: 1: cd: ไม่สามารถ cd ไปยัง /home/steeldriver/src/unrealircd
Freak avatar
in flag
เมื่อแก้ไขข้อบกพร่องนี้ ฉันได้รับรหัสข้อผิดพลาดต่อไปนี้: 255 มีความคิดไหมว่าสิ่งนี้หมายความว่าอย่างไร คำตอบนี้มีประโยชน์มากในการดีบักสภาพแวดล้อมของฉัน
hr flag
@Freak คุณสามารถแยกย่อยและกำหนดคำสั่งที่ส่งคืนรหัสสถานะ 255 ได้หรือไม่ อดีต. `/bin/sh -c 'ac_pwd=$(pwd)'; echo $?` แล้วก็ `/bin/sh -c 'ac_pwd=$(pwd) && test -n "$ac_pwd"'; echo $?` เป็นต้น
hr flag
... และขอเพิ่ม ฉันไม่คิดว่า 255 เป็นสถานะออกจากโปรแกรมมาตรฐาน ฉันเดาไม่ออกจริงๆ ว่าจะเกิดอะไรขึ้น
Freak avatar
in flag
ฉันเพิ่งสามารถแก้ไขสคริปต์กำหนดค่าสำหรับ unrealircd และฉันได้แก้ไขปัญหาแล้ว

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา