一. 安装桌面的前期准备
若之前为配置DNS文件,需要修改/etc/resolv.conf:
nameserver 8.8.8.8
nameserver 180.76.76.76
为了方便后续的安装包在chroot环境中下载,需要安装wget-1.19.4:
./configure --prefix=/usr \
--sysconfdir=/etc \
--with-ssl=openssl &&
make&&make install
还需要相应的证书才能够使用wget,安装推荐的make-ca-0.7:
install -vdm755 /etc/ssl/local &&
wget http://www.cacert.org/certs/root.crt &&
wget http://www.cacert.org/certs/class3.crt &&
openssl x509 -in root.crt -text -fingerprint -setalias "CAcert Class 1 root" \
-addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
> /etc/ssl/local/CAcert_Class_1_root.pem &&
openssl x509 -in class3.crt -text -fingerprint -setalias "CAcert Class 3 root" \
-addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
> /etc/ssl/local/CAcert_Class_3_root.pem
Ps:这一部分的命令需要在宿主环境下相应的make-ca目录下进行(wget在chroot下还无法使用)
安装:make install
还需要下载并更新证书仓库,执行命令:/usr/sbin/make-ca -g
此时使用wget可能会遇到问题:
Connecting to github.com|13.250.177.223|:443... connected.
ERROR: cannot verify github.com's certificate, issued by ‘CN=DigiCert SHA2 Extended Validation Server CA,OU=www.digicert.com,O=DigiCert Inc,C=US’:
Unable to locally verify the issuer's authority.
To connect to github.com insecurely, use `--no-check-certificate'
解决方法,执行:
wget --no-check-certificate https://github.com/curl/curl/raw/master/lib/mk-ca-bundle.pl
perl mk-ca-bundle.pl && rm certdata.txt
mkdir -p ~/.ssl/ && mv ca-bundle.crt mk-ca-bundle.pl ~/.ssl
echo "ca_certificate = ~/.ssl/ca-bundle.crt" >> ~/.wgetrc
此时可以顺利在chroot环境下使用wget命令下载文件;
二. 安装X Window System环境(BLFS8.2 第24章)
提醒:桌面的安装的依赖关系极其错综复杂,各个包的相关依赖请自行参照BLFS8.2进行安装
首先要设置X Window环境安装需要的环境变量,将安装目录设置为/usr:
cat > /etc/profile.d/xorg.sh << EOF
XORG_PREFIX=/usr
XORG_CONFIG="--prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-static"
export XORG_PREFIX XORG_CONFIG
EOF
chmod 644 /etc/profile.d/xorg.sh
注意:有很多包的安装过程中可能会出现使用32位架构和未知CPU架构的问题,若遇到需要在configure配置的时候添加:–with-abi=64 --target=mips64r2
安装util-macros-1.19.1;
./configure $XORG_CONFIG
make install
安装Xorg Protocol Headers,依赖util-macros-1.19.1:
需要先建立需要下载文件的列表md5:
cat > proto-7.md5 << "EOF"
1a05fb01fa1d5198894c931cf925c025 bigreqsproto-1.1.2.tar.bz2
98482f65ba1e74a08bf5b056a4031ef0 compositeproto-0.4.2.tar.bz2
998e5904764b82642cc63d97b4ba9e95 damageproto-1.2.1.tar.bz2
4ee175bbd44d05c34d43bb129be5098a dmxproto-2.3.1.tar.bz2
b2721d5d24c04d9980a0c6540cb5396a dri2proto-2.8.tar.bz2
a3d2cbe60a9ca1bf3aea6c93c817fee3 dri3proto-1.0.tar.bz2
e7431ab84d37b2678af71e29355e101d fixesproto-5.0.tar.bz2
36934d00b00555eaacde9f091f392f97 fontsproto-2.1.3.tar.bz2
5565f1b0facf4a59c2778229c1f70d10 glproto-1.4.17.tar.bz2
b290a463af7def483e6e190de460f31a inputproto-2.3.2.tar.bz2
94afc90c1f7bef4a27fdd59ece39c878 kbproto-1.0.7.tar.bz2
92f9dda9c870d78a1d93f366bcb0e6cd presentproto-1.1.tar.bz2
a46765c8dcacb7114c821baf0df1e797 randrproto-1.5.0.tar.bz2
1b4e5dede5ea51906f1530ca1e21d216 recordproto-1.14.2.tar.bz2
a914ccc1de66ddeb4b611c6b0686e274 renderproto-0.11.1.tar.bz2
cfdb57dae221b71b2703f8e2980eaaf4 resourceproto-1.2.0.tar.bz2
edd8a73775e8ece1d69515dd17767bfb scrnsaverproto-1.2.2.tar.bz2
fe86de8ea3eb53b5a8f52956c5cd3174 videoproto-2.3.3.tar.bz2
5f4847c78e41b801982c8a5e06365b24 xcmiscproto-1.2.2.tar.bz2
70c90f313b4b0851758ef77b95019584 xextproto-7.3.0.tar.bz2
120e226ede5a4687b25dd357cc9b8efe xf86bigfontproto-1.2.0.tar.bz2
a036dc2fcbf052ec10621fd48b68dbb1 xf86dgaproto-2.1.tar.bz2
1d716d0dac3b664e5ee20c69d34bc10e xf86driproto-2.1.1.tar.bz2
e793ecefeaecfeabd1aed6a01095174e xf86vidmodeproto-2.3.1.tar.bz2
9959fe0bfb22a0e7260433b8d199590a xineramaproto-1.2.1.tar.bz2
16791f7ca8c51a20608af11702e51083 xproto-7.0.31.tar.bz2
EOF
创建下载目录并下载proto文件群:
mkdir proto &&
cd proto &&
grep -v '^#' ../proto-7.md5 | awk '{print $2}' | wget -i- -c \
-B https://www.x.org/pub/individual/proto/ &&
md5sum -c ../proto-7.md5
执行命令安装:
bash -e //用来保证安装过程中若出错就跳出
for package in $(grep -v '^#' ../proto-7.md5 | awk '{print $2}')
do
packagedir=${package%.tar.bz2}
tar -xf $package
pushd $packagedir
./configure $XORG_CONFIG
as_root make install
popd
rm -rf $packagedir
done
安装libXau-1.0.8,依赖Xorg Protocol Headers:
./configure $XORG_CONFIG &&
make&&make install
安装libXdmcp-1.1.2,依赖Xorg Protocol Headers:
./configure $XORG_CONFIG &&
make&&make install
安装xcb-proto-1.12,需要下载相应的patch:
patch -Np1 -i ../xcb-proto-1.12-schema-1.patch
patch -Np1 -i ../xcb-proto-1.12-python3-1.patch
./configure $XORG_CONFIG
make install
安装libxcb-1.12,需要下载patch:
patch -Np1 -i ../libxcb-1.12-python3-1.patch
sed -i "s/pthread-stubs//" configure &&
./configure $XORG_CONFIG \
--enable-xinput \
--without-doxygen \
--docdir='${datadir}'/doc/libxcb-1.12 &&
make&&make install
安装Xorg Libraries,依赖Fontconfig-2.12.6和libxcb-1.12,自行按照BLFS8.2安装依赖;建立Xorg库文件的下载列表:
cat > lib-7.md5 << "EOF"
c5ba432dd1514d858053ffe9f4737dd8 xtrans-1.3.5.tar.bz2
0f618db70c4054ca67cee0cc156a4255 libX11-1.6.5.tar.bz2
52df7c4c1f0badd9f82ab124fb32eb97 libXext-1.3.3.tar.bz2
d79d9fe2aa55eb0f69b1a4351e1368f7 libFS-1.0.7.tar.bz2
addfb1e897ca8079531669c7c7711726 libICE-1.0.9.tar.bz2
499a7773c65aba513609fe651853c5f3 libSM-1.2.2.tar.bz2
7a773b16165e39e938650bcc9027c1d5 libXScrnSaver-1.2.2.tar.bz2
8f5b5576fbabba29a05f3ca2226f74d3 libXt-1.1.5.tar.bz2
41d92ab627dfa06568076043f3e089e4 libXmu-1.1.2.tar.bz2
20f4627672edb2bd06a749f11aa97302 libXpm-3.5.12.tar.bz2
e5e06eb14a608b58746bdd1c0bd7b8e3 libXaw-1.0.13.tar.bz2
07e01e046a0215574f36a3aacb148be0 libXfixes-5.0.3.tar.bz2
f7a218dcbf6f0848599c6c36fc65c51a libXcomposite-0.4.4.tar.bz2
802179a76bded0b658f4e9ec5e1830a4 libXrender-0.9.10.tar.bz2
58fe3514e1e7135cf364101e714d1a14 libXcursor-1.1.15.tar.bz2
0cf292de2a9fa2e9a939aefde68fd34f libXdamage-1.1.4.tar.bz2
0920924c3a9ebc1265517bdd2f9fde50 libfontenc-1.1.3.tar.bz2
b7ca87dfafeb5205b28a1e91ac3efe85 libXfont2-2.0.3.tar.bz2
331b3a2a3a1a78b5b44cfbd43f86fcfe libXft-2.3.2.tar.bz2
1f0f2719c020655a60aee334ddd26d67 libXi-1.7.9.tar.bz2
9336dc46ae3bf5f81c247f7131461efd libXinerama-1.1.3.tar.bz2
28e486f1d491b757173dd85ba34ee884 libXrandr-1.5.1.tar.bz2
5d6d443d1abc8e1f6fc1c57fb27729bb libXres-1.2.0.tar.bz2
ef8c2c1d16a00bd95b9fdcef63b8a2ca libXtst-1.2.3.tar.bz2
210b6ef30dda2256d54763136faa37b9 libXv-1.0.11.tar.bz2
4cbe1c1def7a5e1b0ed5fce8e512f4c6 libXvMC-1.0.10.tar.bz2
d7dd9b9df336b7dd4028b6b56542ff2c libXxf86dga-1.1.4.tar.bz2
298b8fff82df17304dfdb5fe4066fe3a libXxf86vm-1.1.4.tar.bz2
ba983eba5a9f05d152a0725b8e863151 libdmx-1.1.3.tar.bz2
8f436e151d5106a9cfaa71857a066d33 libpciaccess-0.14.tar.bz2
4a4cfeaf24dab1b991903455d6d7d404 libxkbfile-1.0.9.tar.bz2
66662e76899112c0f99e22f2fc775a7e libxshmfence-1.2.tar.bz2
EOF
建立下载目录lib并进行下载:
mkdir lib &&
cd lib &&
grep -v '^#' ../lib-7.md5 |