Linux dường như có giới hạn mặc định là 128KiB (131072) về độ dài của bất kỳ biến môi trường đơn lẻ nào - mọi nỗ lực đặt envvar dài hơn mức này và sau đó chạy bất kỳ chương trình nào cũng sẽ dẫn đến lỗi list Danh sách đối số quá dài '.
Đây có vẻ như là một tham số cấu hình, nhưng tôi không thể tìm ra cách nào để nâng cao nó. Có cách nào để tăng nó không?
Vấn đề là các công cụ như "automake" cố gắng tập hợp các danh sách dài các tệp hoặc kiểm tra trong một biến môi trường như là một phần của quá trình thử nghiệm và xây dựng của chúng.
Hãy xem tại đây: ARG_MAX, độ dài tối đa của các đối số cho một quy trình mới
—
NarūnasK
@ NarūnasK: Không hữu ích lắm vì chỉ nói về giới hạn trên tổng số tất cả các đối số và envvars, không giới hạn cho mỗi envvar.
—
Chris Dodd
Bạn đã kiểm tra phần: Số lượng đối số và độ dài tối đa của một đối số ? Có một gợi ý về MAX_ARG_STRLEN (131072)
—
NarnasK
MAX_ARG_STRLEN
là một hằng số được định nghĩa như PAGESIZE*32
trong /path/to/linux/headers/include/uapi/linux/binfmts.h
. Không thể thay đổi mà không biên dịch lại kernel.