<ก่อนหน้านี้ | Contents | ถัดไป>
6.24.1. การติดตั้ง Ncurses
อย่าติดตั้งไลบรารีสแตติกที่ไม่ได้รับการจัดการโดยการกำหนดค่า:
sed -i '/LIBTOOL_INSTALL/d' c++/Makefile.in
sed -i '/LIBTOOL_INSTALL/d' c++/Makefile.in
เตรียม Ncurses สำหรับการรวบรวม:
./configure --prefix=/usr \
--mandir=/usr/share/man \
--กับที่ใช้ร่วมกัน \
--โดยไม่ต้องดีบัก\
-- โดยไม่มีปกติ \
--enable-pc-ไฟล์ \
--enable-กว้าง
./configure --prefix=/usr \
--mandir=/usr/share/man \
--กับที่ใช้ร่วมกัน \
--โดยไม่ต้องดีบัก\
-- โดยไม่มีปกติ \
--enable-pc-ไฟล์ \
--enable-กว้าง
ความหมายของตัวเลือกการกำหนดค่าใหม่:
--enable-กว้าง
สวิตช์นี้ทำให้เกิดไลบรารีที่มีอักขระกว้าง (เช่น libncursesw.so.6.1) ให้สร้างแทนแบบธรรมดา (เช่น libncurses.so.6.1). ไลบรารีที่มีอักขระแบบกว้างเหล่านี้สามารถใช้ได้ทั้งในแบบหลายไบต์และแบบ 8 บิตแบบดั้งเดิม ในขณะที่ไลบรารีปกติทำงานอย่างถูกต้องเฉพาะในโลแคล 8 บิตเท่านั้น ไลบรารีที่มีอักขระแบบกว้างและแบบปกติสามารถทำงานร่วมกับซอร์สได้ แต่ไม่รองรับไบนารี
--enable-pc-files
สวิตช์นี้สร้างและติดตั้งไฟล์ .pc สำหรับ pkg-config
--ไม่ปกติ
สวิตช์นี้ปิดใช้งานการสร้างและติดตั้งไลบรารีแบบสแตติกส่วนใหญ่
รวบรวมแพ็คเกจ:
ทำ
ทำ
แพ็คเกจนี้มีชุดทดสอบ แต่สามารถเรียกใช้ได้หลังจากติดตั้งแพ็คเกจแล้วเท่านั้น การทดสอบอยู่ใน ทดสอบ/
ไดเร็กทอรี ดู README ไฟล์ในไดเร็กทอรีนั้นสำหรับรายละเอียดเพิ่มเติม ติดตั้งแพ็คเกจ:
ให้ติดตั้ง
ให้ติดตั้ง
ย้ายไลบรารีที่แชร์ไปที่ / lib ไดเร็กทอรีที่พวกเขาคาดว่าจะอยู่:
mv -v /usr/lib/libncursesw.so.6* /lib
mv -v /usr/lib/libncursesw.so.6* /lib
เนื่องจากไลบรารีถูกย้ายแล้ว ลิงก์หนึ่งลิงก์ชี้ไปที่ไฟล์ที่ไม่มีอยู่จริง สร้างใหม่:
ln -sfv ../../lib/$(readlink /usr/lib/libncursesw.so) /usr/lib/libncursesw.so
ln -sfv ../../lib/$(readlink /usr/lib/libncursesw.so) /usr/lib/libncursesw.so
>
>
แอปพลิเคชั่นจำนวนมากยังคงคาดหวังว่าตัวเชื่อมโยงจะสามารถค้นหาไลบรารี Ncurses ที่ไม่ใช่อักขระกว้างได้ หลอกแอปพลิเคชันดังกล่าวให้เชื่อมโยงกับไลบรารีที่มีอักขระกว้างโดยใช้ symlink และสคริปต์ตัวเชื่อมโยง:
สำหรับ lib ในแผงแบบฟอร์ม ncurses rm -vf
เสียงสะท้อน "INPUT(-l${lib}w)" ln -sfv ${lib}w.pc
ทำ
เมนู ; ทำ
/usr/lib/lib${lib}.so
/usr/lib/lib${lib}.so
/usr/lib/pkgconfig/${lib}.pc
สำหรับ lib ในแผงแบบฟอร์ม ncurses rm -vf
เสียงสะท้อน "INPUT(-l${lib}w)" ln -sfv ${lib}w.pc
ทำ
สุดท้ายตรวจสอบให้แน่ใจว่าแอปพลิเคชั่นเก่าที่มองหา -lcurses ณ เวลาสร้างยังคงสร้างได้:
rm -vf /usr/lib/libcursesw.so echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so ln -sfv libncurses.so /usr/lib/libcurses.so
rm -vf /usr/lib/libcursesw.so echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so ln -sfv libncurses.so /usr/lib/libcurses.so
หากต้องการ ให้ติดตั้งเอกสาร Ncurses:
mkdir -v
/usr/share/doc/ncurses-6.1
mkdir -v
cp -v -R doc/* /usr/share/doc/ncurses-6.1
cp -v -R doc/* /usr/share/doc/ncurses-6.1
หมายเหตุ
คำแนะนำข้างต้นไม่สร้างไลบรารี Ncurses ที่ไม่ใช่อักขระแบบกว้าง เนื่องจากไม่มีแพ็กเกจที่ติดตั้งโดยการรวบรวมจากแหล่งที่มาจะลิงก์กับไลบรารี Ncurses ในขณะรันไทม์ อย่างไรก็ตาม แอปพลิเคชันไบนารีเท่านั้นที่รู้จักซึ่งเชื่อมโยงกับไลบรารี Ncurses ที่ไม่ใช่อักขระแบบกว้างต้องมีเวอร์ชัน 5 หากคุณต้องมีไลบรารีดังกล่าวเนื่องจากแอปพลิเคชันไบนารีเท่านั้นบางตัวหรือเพื่อให้สอดคล้องกับ LSB ให้สร้างแพ็กเกจอีกครั้งโดยมีข้อมูลต่อไปนี้ คำสั่ง:
หมายเหตุ
คำแนะนำข้างต้นไม่สร้างไลบรารี Ncurses ที่ไม่ใช่อักขระแบบกว้าง เนื่องจากไม่มีแพ็กเกจที่ติดตั้งโดยการรวบรวมจากแหล่งที่มาจะลิงก์กับไลบรารี Ncurses ในขณะรันไทม์ อย่างไรก็ตาม แอปพลิเคชันไบนารีเท่านั้นที่รู้จักซึ่งเชื่อมโยงกับไลบรารี Ncurses ที่ไม่ใช่อักขระแบบกว้างต้องมีเวอร์ชัน 5 หากคุณต้องมีไลบรารีดังกล่าวเนื่องจากแอปพลิเคชันไบนารีเท่านั้นบางตัวหรือเพื่อให้สอดคล้องกับ LSB ให้สร้างแพ็กเกจอีกครั้งโดยมีข้อมูลต่อไปนี้ คำสั่ง:
ทำให้ distclean
./configure --prefix=/usr \
--กับที่ใช้ร่วมกัน \
-- โดยไม่มีปกติ \
--โดยไม่ต้องดีบัก\
--ไม่มี cxx-ผูกพัน \
--with-abi-version=5 สร้างแหล่งที่มา libs
cp -av lib/lib*.so.5* /usr/lib
ทำให้ distclean
./configure --prefix=/usr \
--กับที่ใช้ร่วมกัน \
-- โดยไม่มีปกติ \
--โดยไม่ต้องดีบัก\
--ไม่มี cxx-ผูกพัน \
--with-abi-version=5 สร้างแหล่งที่มา libs
cp -av lib/lib*.so.5* /usr/lib