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.9.1. Cài đặt Glibc


Lưu ý

Hệ thống xây dựng Glibc là độc lập và sẽ cài đặt hoàn hảo, mặc dù tệp thông số kỹ thuật của trình biên dịch và trình liên kết vẫn đang trỏ tới /công cụ. Không thể điều chỉnh các thông số kỹ thuật và trình liên kết trước khi cài đặt Glibc vì các thử nghiệm autoconf của Glibc sẽ cho kết quả sai và không đạt được mục tiêu đạt được một bản dựng sạch sẽ.

Lưu ý

Hệ thống xây dựng Glibc là độc lập và sẽ cài đặt hoàn hảo, mặc dù tệp thông số kỹ thuật của trình biên dịch và trình liên kết vẫn đang trỏ tới /công cụ. Không thể điều chỉnh các thông số kỹ thuật và trình liên kết trước khi cài đặt Glibc vì các thử nghiệm autoconf của Glibc sẽ cho kết quả sai và không đạt được mục tiêu đạt được một bản dựng sạch sẽ.

Một số chương trình Glibc sử dụng quy định không phải của FHS / var / db thư mục để lưu trữ dữ liệu thời gian chạy của chúng. Áp dụng bản vá sau để làm cho các chương trình như vậy lưu trữ dữ liệu thời gian chạy của chúng ở các vị trí tuân thủ FHS:


bản vá -Np1 -i ../glibc-2.30-fhs-1.patch

bản vá -Np1 -i ../glibc-2.30-fhs-1.patch


Khắc phục sự cố được giới thiệu với nhân linux-5.2:


sed -i '/asm.socket.h/a# bao gồm '\ sysdeps / unix / sysv / linux / bits / socket.h

sed -i '/asm.socket.h/a# bao gồm '\ sysdeps / unix / sysv / linux / bits / socket.h


hình ảnh

-sfv

-sfv

-sfv

-sfv

../lib/ld-linux-x86-64.so.2 / lib64

../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3

../lib/ld-linux-x86-64.so.2 / lib64

../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3

Tạo liên kết biểu tượng để tuân thủ LSB. Ngoài ra, đối với x86_64, hãy tạo một liên kết tượng trưng tương thích cần thiết để trình tải động hoạt động chính xác:


trường hợp $ (uname -m) trong

trường hợp $ (uname -m) trong


tôi? 86) ln

;;

x86_64) trong

ln

;;

nó C

-sfv

ld-linux.so.2 /lib/ld-lsb.so.3

tôi? 86) ln

;;

x86_64) trong

ln

;;

nó C

Tài liệu Glibc khuyên bạn nên xây dựng Glibc trong một thư mục xây dựng chuyên dụng:


mkdir -v xây dựng cd xây dựng

mkdir -v xây dựng cd xây dựng


hình ảnh

Chuẩn bị Glibc để biên dịch:


CC = "gcc -ffile-prefix-map = / tools = / usr" \

../configure --prefix = / usr

--disable-werror

--enable-kernel = 3.2

--enable-stack-protectionor = strong

--with-headers = / usr / include libc_cv_slibdir = / lib

\

\

\

\

\

CC = "gcc -ffile-prefix-map = / tools = / usr" \

../configure --prefix = / usr

--disable-werror

--enable-kernel = 3.2

--enable-stack-protectionor = strong

--with-headers = / usr / include libc_cv_slibdir = / lib


Ý nghĩa của các tùy chọn và thông số cấu hình mới:


CC = "gcc -ffile-prefix-map = / tools = / usr"

Làm cho GCC ghi lại bất kỳ tham chiếu nào đến các tệp trong / công cụ do kết quả của quá trình biên dịch như thể các tệp nằm trong / usr. Điều này tránh đưa vào các đường dẫn không hợp lệ trong các ký hiệu gỡ lỗi.

--disable-werror

Tùy chọn này vô hiệu hóa tùy chọn -Werror được chuyển đến GCC. Điều này là cần thiết để chạy bộ thử nghiệm.

--enable-stack-protectionor = strong

Tùy chọn này tăng tính bảo mật của hệ thống bằng cách thêm mã bổ sung để kiểm tra lỗi tràn bộ đệm, chẳng hạn như các cuộc tấn công đập ngăn xếp.

--with-headers = / usr / include

Tùy chọn này cho hệ thống xây dựng biết nơi tìm các tiêu đề API hạt nhân. Theo mặc định, những tiêu đề đó được tìm kiếm trong

/ công cụ / bao gồm.

libc_cv_slibdir = / lib

Biến này đặt thư viện chính xác cho tất cả các hệ thống. Chúng tôi không muốn lib64 được sử dụng.

Biên dịch gói:


làm cho

làm cho


Quan trọng

Trong phần này, bộ thử nghiệm cho Glibc được coi là rất quan trọng. Đừng bỏ qua nó trong bất kỳ hoàn cảnh nào.

Quan trọng

Trong phần này, bộ thử nghiệm cho Glibc được coi là rất quan trọng. Đừng bỏ qua nó trong bất kỳ hoàn cảnh nào.


hình ảnh

hình ảnh

hình ảnh

/ lib ;;

/ lib ;;

-sfnv $ PWD / elf / ld-linux-x86-64.so.2 / lib ;;

-sfnv $ PWD / elf / ld-linux-x86-64.so.2 / lib ;;

Nói chung một số bài kiểm tra không vượt qua. Các lỗi thử nghiệm được liệt kê dưới đây thường an toàn để bỏ qua.


case $ (uname i? 86) ln x86_64) ln

nó C

-m) trong

-sfnv $ PWD / elf / ld-linux.so.2

case $ (uname i? 86) ln x86_64) ln

nó C


Lưu ý

Liên kết tượng trưng ở trên là cần thiết để chạy các bài kiểm tra ở giai đoạn xây dựng này trong môi trường chroot. Nó sẽ được ghi đè trong giai đoạn cài đặt bên dưới.

Lưu ý

Liên kết tượng trưng ở trên là cần thiết để chạy các bài kiểm tra ở giai đoạn xây dựng này trong môi trường chroot. Nó sẽ được ghi đè trong giai đoạn cài đặt bên dưới.


kiểm tra

kiểm tra

Bạn có thể thấy một số lỗi thử nghiệm. Bộ thử nghiệm Glibc hơi phụ thuộc vào hệ thống máy chủ. Đây là danh sách các sự cố thường gặp nhất đối với một số phiên bản của LFS:

misc / tst-ttyname được biết là không thành công trong môi trường chroot LFS.

inet / tst-idna_name_classify được biết là không thành công trong môi trường chroot LFS.

posix / tst-getaddrinfo4 posix / tst-getaddrinfo5 có thể bị lỗi trên một số kiến ​​trúc.

• Các nss / tst-nss-files-hosts-multi thử nghiệm có thể thất bại vì những lý do chưa được xác định.


• Các rt / tst-cputimer {1,2,3} kiểm tra phụ thuộc vào nhân hệ thống máy chủ. Các nhân 4.14.91–4.14.96, 4.19.13–4.19.18 và 4.20.0–4.20.5 được biết là nguyên nhân khiến các thử nghiệm này không thành công.

• Các bài kiểm tra toán học đôi khi không thành công khi chạy trên các hệ thống mà CPU không phải là bộ xử lý Intel hoặc AMD tương đối mới.

Mặc dù đó là một thông báo vô hại, giai đoạn cài đặt của Glibc sẽ phàn nàn về việc không có /etc/ld.so.conf. Ngăn chặn cảnh báo này bằng:


chạm vào /etc/ld.so.conf

chạm vào /etc/ld.so.conf


Khắc phục Makefile đã tạo để bỏ qua kiểm tra sự tỉnh táo không cần thiết bị lỗi trong môi trường một phần LFS:


sed '/ test-install / s @ $ (PERL) @echo không chạy @' -i ../Makefile

sed '/ test-install / s @ $ (PERL) @echo không chạy @' -i ../Makefile


Cài đặt gói:


thực hiện cài đặt

thực hiện cài đặt


Cài đặt tệp cấu hình và thư mục thời gian chạy cho nscd:


cp -v ../nscd/nscd.conf /etc/nscd.conf mkdir -pv / var / cache / nscd

cp -v ../nscd/nscd.conf /etc/nscd.conf mkdir -pv / var / cache / nscd


Tiếp theo, cài đặt các ngôn ngữ có thể làm cho hệ thống phản hồi bằng một ngôn ngữ khác. Không có ngôn ngữ nào được yêu cầu, nhưng nếu thiếu một số ngôn ngữ trong số chúng, các bộ thử nghiệm của các gói trong tương lai sẽ bỏ qua các tủ thử nghiệm quan trọng.


Các ngôn ngữ riêng lẻ có thể được cài đặt bằng cách sử dụng localdef chương trình. Vd: cái đầu tiên localdef lệnh dưới đây kết hợp / usr / share / i18n / locales / cs_CZ định nghĩa ngôn ngữ không phụ thuộc vào bộ ký tự với / usr / share / i18n / charmaps / UTF-8.gz định nghĩa charmap và gắn kết quả vào / usr / lib / locale / locale- archive tập tin. Các hướng dẫn sau sẽ cài đặt bộ ngôn ngữ tối thiểu cần thiết cho phạm vi kiểm tra tối ưu:


hình ảnh

mkdir -pv / usr / lib / locale

localedef -i POSIX -f UTF-8 C.UTF-8 2> / dev / null || true localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8

localedef -i de_DE -f ISO-8859-1 de_DE

localedef -i de_DE @ euro -f ISO-8859-15 de_DE @ euro localedef -i de_DE -f UTF-8 de_DE.UTF-8

localedef -i el_GR -f ISO-8859-7 el_GR localedef -i en_GB -f UTF-8 en_GB.UTF-8 localedef -i en_HK -f ISO-8859-1 en_HK localedef -i en_PH -f ISO-8859-1 en_PH localedef -i en_US -f ISO-8859-1 en_US localedef -i en_US -f UTF-8 en_US.UTF-8 localedef -i es_MX -f ISO-8859-1 es_MX localedef -i fa_IR -f UTF-8 fa_IR localedef - i fr_FR -f ISO-8859-1 fr_FR

localedef -i fr_FR @ euro -f ISO-8859-15 fr_FR @ euro localedef -i fr_FR -f UTF-8 fr_FR.UTF-8

localedef -i it_IT -f ISO-8859-1 it_IT localedef -i it_IT -f UTF-8 it_IT.UTF-8 localedef -i ja_JP -f EUC-JP ja_JP

localedef -i ja_JP -f SHIFT_JIS ja_JP.SIJS 2> / dev / null || true localedef -i ja_JP -f UTF-8 ja_JP.UTF-8

localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 localedef -i zh_CN -f GB18030 zh_CN .GB18030

localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS


Ngoài ra, hãy cài đặt ngôn ngữ cho quốc gia, ngôn ngữ và bộ ký tự của riêng bạn.

Ngoài ra, hãy cài đặt tất cả các ngôn ngữ được liệt kê trong glibc-2.30 / localedata / ĐƯỢC HỖ TRỢ tệp (nó bao gồm mọi ngôn ngữ được liệt kê ở trên và nhiều ngôn ngữ khác) cùng một lúc bằng lệnh tốn thời gian sau:


tạo dữ liệu cục bộ / cài đặt-ngôn ngữ

tạo dữ liệu cục bộ / cài đặt-ngôn ngữ


hình ảnh

Sau đó sử dụng localdef lệnh để tạo và cài đặt các ngôn ngữ không được liệt kê trong glibc-2.30 / localedata / ĐƯỢC HỖ TRỢ trong trường hợp không chắc bạn cần chúng.


Lưu ý

Glibc hiện sử dụng libidn2 khi phân giải các tên miền quốc tế hóa. Đây là một sự phụ thuộc vào thời gian chạy. Nếu khả năng này là cần thiết, hướng dẫn cài đặt libidn2 có trong trang BLFS libidn2.

Lưu ý

Glibc hiện sử dụng libidn2 khi phân giải các tên miền quốc tế hóa. Đây là một sự phụ thuộc vào thời gian chạy. Nếu khả năng này là cần thiết, hướng dẫn cài đặt libidn2 có trong trang BLFS libidn2.


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