OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<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.

hình ảnh

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ủ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


Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: