Điểm:0

./configure: lỗi: không thể xác định thư mục làm việc

lá cờ in

Tôi vô cùng thất vọng với lỗi này. bây giờ điều đáng chú ý là chạy cd "$(pwd)" và lặp lại tất cả các biến môi trường, mọi thứ dường như theo thứ tự.

Tôi hiện đang cố cài đặt unrealircd 5.2.0.1 (NHƯNG tôi gặp lỗi này khi chạy BẤT CỨ ĐIỀU GÌ liên quan đến tập lệnh ./configure)

Đây là đầu ra của tôi để giả vờ về lỗi của tôi:

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

                               Chương trình cấu hình
                                cho UnrealIRCd 5.2.0.1
[SNIP]
Bạn có muốn chuyển bất kỳ tham số tùy chỉnh nào để định cấu hình không?
Hầu hết mọi người không cần điều này và chỉ cần nhấn ENTER.
Nếu không, hãy xem `./configure --help' và viết chúng ở đây:
[] ->
Chạy với 4 quy trình xây dựng đồng thời theo mặc định (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
cấu hình: lỗi: không thể xác định thư mục làm việc

bây giờ như tôi đã nói, tôi gặp lỗi này khi cài đặt BẤT CỨ ĐIỀU GÌ liên quan đến tập lệnh ./configure. Điều đáng chú ý là với tư cách là bất kỳ người dùng nào, tôi không thể chạy ./configure, với cùng một lỗi đã nói.

cating /etc/passwd cho biết thư mục chính thích hợp cho những người dùng đã nói.

Bây giờ vấn đề của tôi ở đây là gì?

lá cờ cn
Ray
Có phải "khi cài đặt BẤT CỨ ĐIỀU GÌ liên quan đến ./configure" có nghĩa là bất kỳ tập lệnh `configure` nào, không chỉ dành cho chương trình bạn đã đề cập ở trên, gây ra sự cố trên không? Ngoài ra, sự cố của bạn không liên quan đến `g++`, `gcc` hoặc `cmake` (theo như tôi có thể biết). Vì vậy, tôi đã xóa chúng khỏi thẻ của bạn.
Freak avatar
lá cờ in
bất kỳ tập lệnh cấu hình nào
HuHa avatar
lá cờ es
Bạn đang chạy cái này với quyền root? Đừng làm thế. Phần cuối cùng (`make install`) cần có quyền root và phần đó sẽ được chạy dưới dạng `sudo make install`. Nhưng chắc chắn **không** phần `./configure` hoặc phần `make`. Bạn đang mở rộng cánh cửa cho bất kỳ kẻ tấn công nào.
HuHa avatar
lá cờ es
"bất kỳ tập lệnh cấu hình nào" là một tuyên bố táo bạo. Tôi không tin điều đó. Tôi khá chắc chắn rằng điều này được giới hạn trong tập lệnh cấu hình _this_.
lá cờ hr
Nếu nó thực sự *là* "bất kỳ tập lệnh cấu hình nào" thì điều đó cho thấy có vấn đề với macro `_AC_INIT_DIRCHECK` của autoconf (hoặc một trong các lệnh mà nó dựa vào - `pwd`, `ls`, `cd`)
Freak avatar
lá cờ in
Tất cả pwd, ls và cd của tôi đều hoạt động như mong đợi. và lỗi này không chỉ giới hạn ở tập lệnh cấu hình _this_. Làm cách nào tôi có thể sửa/thay đổi macro _AC_INIT_DIRCHECK của mình? đây có phải là biến môi trường không?
lá cờ hr
@Freak Tôi đã thêm câu trả lời với một số thông tin và mẹo gỡ lỗi bên dưới
Điểm:1
lá cờ es

Các tài liệu nói rõ ràng:

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

Biên dịch/xây dựng vấn đề

Tôi đã chạy ./configure và gặp rất nhiều vấn đề

KHÔNG sử dụng ./configure! Thay vào đó hãy chạy ./Config.

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

Biên soạn

Trước tiên, hãy chạy tập lệnh ./Config sẽ hỏi một số câu hỏi. Bạn chỉ cần nhấn Enter để chấp nhận các câu trả lời mặc định.

./config

Bây giờ, biên dịch UnrealIRCd bằng cách chạy make, quá trình này có thể mất một (hoặc hai phút):

chế tạo

Freak avatar
lá cờ in
Tôi đang sử dụng ./Config, nó chạy cấu hình như một phần của quá trình thực thi. nó chỉ chạy ./configure ở cuối. và như tôi đã nói, lỗi này xuất hiện cùng với việc thực thi các tập lệnh khác sử dụng ./configure.
Điểm:0
lá cờ hr

Theo quy ước, cấu hình là tập lệnh shell POSIX được tạo từ cấu hình.ac hoặc cấu hình.in tệp mẫu của GNU autoconf chương trình - tại thời điểm cài đặt hoặc trước khi phân phối bởi nhà bảo trì phần mềm.

Thông báo lỗi

cấu hình: lỗi: không thể xác định thư mục làm việc

đến từ một macro autoconf tiêu chuẩn có tên _AC_INIT_DIRCHECK và được xác định trong /usr/share/autoconf/autoconf/General.m4:

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

ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
  AC_MSG_ERROR([không xác định được thư mục làm việc])
kiểm tra "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
  AC_MSG_ERROR([pwd không báo tên thư mục làm việc])

Bạn có thể tìm thấy thông tin chi tiết hơn về nguyên nhân gây ra lỗi trong config.log tập tin. Ngoài ra, bạn có thể chạy cùng một mã trong trình bao POSIX không tương tác như sau:

/bin/sh -c '
  ac_pwd=`pwd` && test -n "$ac_pwd" && 
  ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .`
'
tiếng vang $?

hoặc chia nhỏ thành các phần riêng lẻ của nó như

/bin/sh -c 'ac_pwd=`pwd` && test -n "$ac_pwd"'; tiếng vang $?

Một khả năng xảy ra lỗi là thư mục làm việc không có bộ bit thực thi:

$ chmod -x .

$ /bin/sh -c '
  ac_pwd=`pwd` && test -n "$ac_pwd" &&
  ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .`
'
/bin/sh: 1: cd: không thể cd vào /home/steeldriver/src/unrealircd
Freak avatar
lá cờ in
khi gỡ lỗi này, tôi nhận được mã lỗi sau: 255, bạn có biết điều này có nghĩa là gì không? Ngoài ra, câu trả lời này rất hữu ích trong việc gỡ lỗi môi trường của tôi.
lá cờ hr
@Freak bạn có thể chia nhỏ nó và xác định lệnh nào đang trả về mã trạng thái 255 không? Bán tại. `/bin/sh -c 'ac_pwd=$(pwd)'; echo $?` then `/bin/sh -c 'ac_pwd=$(pwd) && test -n "$ac_pwd"'; tiếng vang $?`, v.v.
lá cờ hr
... và nói thêm, tôi không nghĩ 255 là trạng thái thoát chương trình tiêu chuẩn, tôi thực sự không thể đoán được điều gì có thể tạo ra điều đó
Freak avatar
lá cờ in
Tôi chỉ có thể chỉnh sửa tập lệnh cấu hình cho unrealircd và tôi đã khắc phục sự cố của mình.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.