<Trước | Nội dung | Tiếp theo>
6.54.1. Cài đặt Coreutils
POSIX yêu cầu các chương trình từ Coreutils nhận ra các ranh giới ký tự một cách chính xác ngay cả trong các ngôn ngữ multibyte. Bản vá sau đây sửa lỗi không tuân thủ này và các lỗi khác liên quan đến quốc tế hóa.
bản vá -Np1 -i ../coreutils-8.31-i18n-1.patch
bản vá -Np1 -i ../coreutils-8.31-i18n-1.patch
Lưu ý
Trong quá khứ, nhiều lỗi đã được tìm thấy trong bản vá này. Khi báo cáo lỗi mới cho người bảo trì Coreutils, trước tiên hãy kiểm tra xem chúng có thể tái tạo được mà không có bản vá này hay không.
Lưu ý
Trong quá khứ, nhiều lỗi đã được tìm thấy trong bản vá này. Khi báo cáo lỗi mới cho người bảo trì Coreutils, trước tiên hãy kiểm tra xem chúng có thể tái tạo được mà không có bản vá này hay không.
Bỏ kiểm tra mà trên một số máy có thể lặp lại mãi mãi:
sed -i '/test.lock/s/^/#/' gnulib-tests / gnulib.mk
sed -i '/test.lock/s/^/#/' gnulib-tests / gnulib.mk
Bây giờ chuẩn bị Coreutils để biên dịch:
autoreconf -fiv FORCE_UNSAFE_CONFIGURE = 1 ./configure \
--prefix = / usr \
--enable-no-install-program = kill, uptime
autoreconf -fiv FORCE_UNSAFE_CONFIGURE = 1 ./configure \
--prefix = / usr \
--enable-no-install-program = kill, uptime
Ý nghĩa của các tùy chọn cấu hình:
tự động sửa lỗi
Lệnh này cập nhật các tệp cấu hình đã tạo phù hợp với phiên bản mới nhất của automake.
FORCE_UNSAFE_CONFIGURE = 1
Biến môi trường này cho phép gói được xây dựng với tư cách là người dùng gốc.
--enable-no-install-program = kill, uptime
Mục đích của công tắc này là ngăn Coreutils cài đặt các tệp nhị phân sẽ được cài đặt bởi các gói khác sau này.
Biên dịch gói:
làm cho
làm cho
Chuyển xuống “Cài đặt gói” nếu không chạy bộ thử nghiệm.
Bây giờ bộ thử nghiệm đã sẵn sàng để chạy. Đầu tiên, hãy chạy các bài kiểm tra nhằm mục đích chạy với tư cách người dùng nguồn gốc:
làm cho NON_ROOT_USERNAME = không ai kiểm tra gốc
làm cho NON_ROOT_USERNAME = không ai kiểm tra gốc
Chúng tôi sẽ chạy phần còn lại của các bài kiểm tra như không có ai người sử dụng. Tuy nhiên, một số thử nghiệm nhất định yêu cầu người dùng phải là thành viên của nhiều nhóm. Để các thử nghiệm này không bị bỏ qua, chúng tôi sẽ thêm một nhóm tạm thời và làm cho người dùng không có ai một phần của nó:
echo "dummy: x: 1000: nothing" >> / etc / group
echo "dummy: x: 1000: nothing" >> / etc / group
Sửa một số quyền để người dùng không phải root có thể biên dịch và chạy thử nghiệm:
chown -Rv không ai cả.
chown -Rv không ai cả.
Bây giờ hãy chạy các bài kiểm tra. Đảm bảo rằng PATH trong su môi trường bao gồm / công cụ / thùng.
su ai -s / bin / bash \
-c "PATH = $ PATH thực hiện RUN_EXPENSIVE_TESTS = có kiểm tra"
su ai -s / bin / bash \
-c "PATH = $ PATH thực hiện RUN_EXPENSIVE_TESTS = có kiểm tra"
Chương trình thử nghiệm test-getlogin được biết là không thành công trong môi trường hệ thống được xây dựng một phần như môi trường chroot ở đây, nhưng sẽ vượt qua nếu chạy ở cuối chương này. Chương trình thử nghiệm tty.sh cũng được biết là không thành công.
Xóa nhóm tạm thời:
sed -i '/ dummy / d' / etc / group
sed -i '/ dummy / d' / etc / group
Cài đặt gói:
thực hiện cài đặt
thực hiện cài đặt
Di chuyển các chương trình đến các vị trí do FHS chỉ định:
mv -v / usr / bin / {cat, chgrp, chmod, chown, cp, date, dd, df, echo} / bin mv -v / usr / bin / {false, ln, ls, mkdir, mknod, mv, pwd, rm} / bin
mv -v / usr / bin / {rmdir, stty, sync, true, uname} / bin mv -v / usr / bin / chroot / usr / sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 sed -is / \ "1 \" / \ "8 \" / 1 / usr / share / man /man8/chroot.8
mv -v / usr / bin / {cat, chgrp, chmod, chown, cp, date, dd, df, echo} / bin mv -v / usr / bin / {false, ln, ls, mkdir, mknod, mv, pwd, rm} / bin
mv -v / usr / bin / {rmdir, stty, sync, true, uname} / bin mv -v / usr / bin / chroot / usr / sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 sed -is / \ "1 \" / \ "8 \" / 1 / usr / share / man /man8/chroot.8
Một số tập lệnh trong gói LFS-Bootscripts phụ thuộc vào cái đầu, tốt đẹp, ngủvà chạm. Các / usr có thể không khả dụng trong giai đoạn đầu và giai đoạn cuối của quá trình khởi động, các tệp nhị phân đó cần phải nằm trên phân vùng gốc để duy trì tuân thủ FHS:
mv -v / usr / bin / {head, nice, sleep, touch} / bin
mv -v / usr / bin / {head, nice, sleep, touch} / bin
<Trước | Nội dung | Tiếp theo>