jsp网站开发过程,长沙seo网站管理,网站建设大题,中文个人网站欣赏Linux运维_Bash脚本_编译安装Wayland-1.22.0
Bash (Bourne Again Shell) 是一个解释器#xff0c;负责处理 Unix 系统命令行上的命令。它是由 Brian Fox 编写的免费软件#xff0c;并于 1989 年发布的免费软件#xff0c;作为 Sh (Bourne Shell) 的替代品。
您可以在 Linu…Linux运维_Bash脚本_编译安装Wayland-1.22.0
Bash (Bourne Again Shell) 是一个解释器负责处理 Unix 系统命令行上的命令。它是由 Brian Fox 编写的免费软件并于 1989 年发布的免费软件作为 Sh (Bourne Shell) 的替代品。
您可以在 Linux 和 MacOS 机器上使用 Bash甚至可以通过适用于 Linux 的 Windows 子系统在 Windows 10 机器上使用。
使用方法
下载源码包:
libffi-3.4.4.tar.gz
libxml2-2.9.1.tar.gz
expat-2.5.0.tar.gz
libxslt-1.1.28.tar.gz
xmlto-0.0.28.tar.bz2
docbook-xsl-1.79.1.tar.bz2
docbook-xsl-doc-1.79.1.tar.bz2
pixman-0.43.4.tar.gz
cairo-1.18.0.tar.xz
fribidi-1.0.13.tar.xz
graphite2-1.3.14.tgz
harfbuzz-8.3.0.tar.xz
freetype-2.12.0.tar.gz - Recompile and Reinstall
fontconfig-2.15.0.tar.xz - Recompile and Reinstall
pango-1.51.2.tar.xz
gts-0.7.6.tar.gz
graphviz-8.1.0.tar.gz
doxygen-1.10.0.src.tar.gz
wayland-1.22.0.tar.gz
wayland-protocols-1.32.tar.gz
放于指定路径:
这里 Bash Shell 脚本的全局变量 STORAGE 指定的存放源码包的路径 /home/goufeng 可进行修改。
执行 Bash Shell 脚本:
输入 /[路径名]/[脚本名].sh 即可进行自动编译部署过程中提示输入 (y/n) 输入 y 则进行下一步这样分阶段确认的原因是为了确保能够看到上一个源码编译结果中可能的错误和提示。
完整脚本
#! /bin/bash
# Create By GF 2024-02-29 00:06# --------------------------------------------------
# Install First:
# * GNU-Tools (Contains: pkg-config, m4, autoconf, automake, libtool, gettext, flex, bison, libiconv, make)
# * CMake 3.14.x
# * Python 3.x
# * Meson
# * Ninja
# * X11
# * libGD 2.3.3 (Compiled by: freetype, libpng, jpeg)# ------------------- Dependency -------------------
# Need File: libffi-3.4.4.tar.gz
# ------------------- XML Tools --------------------
# Need File: libxml2-2.9.1.tar.gz
# Need File: expat-2.5.0.tar.gz
# Need File: libxslt-1.1.28.tar.gz
# Need File: xmlto-0.0.28.tar.bz2
# ----- XML Tools (XSL Stylesheets) DocBook-XSL ----
# Need File: docbook-xsl-1.79.1.tar.bz2
# Need File: docbook-xsl-doc-1.79.1.tar.bz2
# --------- Graphviz Dep: Cairo (Optional) ---------
# Need File: pixman-0.43.4.tar.gz
# Need File: cairo-1.18.0.tar.xz
# --------- Graphviz Dep: Pango (Optional) ---------
# Need File: fribidi-1.0.13.tar.xz
# Need File: graphite2-1.3.14.tgz
# Need File: harfbuzz-8.3.0.tar.xz
# Need File: freetype-2.12.0.tar.gz - Recompile and Reinstall
# Need File: fontconfig-2.15.0.tar.xz - Recompile and Reinstall
# Need File: pango-1.51.2.tar.xz
# ---------- Graphviz Dep: GTS (Optional) ----------
# Need File: gts-0.7.6.tar.gz
# -------------------- Graphviz --------------------
# Need File: graphviz-8.1.0.tar.gz
# -------------------- Doxygen ---------------------
# Need File: doxygen-1.10.0.src.tar.gz
# -------------------- Wayland ---------------------
# Need File: wayland-1.22.0.tar.gz
# -------------- Wayland - Protocols ---------------
# Need File: wayland-protocols-1.32.tar.gz# ##################################################
STORAGE/home/goufeng# ############################################ Dependency ############################################# Function: 编译安装(Compile Install) libffi-3.4.4 (for Linux)
# ##################################################
function Compile_Install_libffi_3_4_4_for_Linux() {if [[ ! -d /opt/libffi-3.4.4 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CONFIGURED0local STEP_INSTALLED0# ------------------------------------------echo [Confirm] Compile and Install ( libffi-3.4.4 )? (y/n)# ..........................................read VERIFY# ..........................................if [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/libffi-3.4.4.tar.gz STEP_UNZIPPED1# ------------------------------------------cd $STORAGE/libffi-3.4.4 ./configure --prefix/opt/libffi-3.4.4 STEP_CONFIGURED1# ------------------------------------------make make install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................rsync -av /opt/libffi-3.4.4/include/ /usr/local/include/rsync -av /opt/libffi-3.4.4/lib/ /usr/local/lib/# ......................................cp -f /opt/libffi-3.4.4/lib/pkgconfig/libffi.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/libffi-3.4.4 return 0elseecho [Caution] Path: ( /opt/libffi-3.4.4 ) Already Exists.# ------------------------------------------return 0fi
}# ############################################ XML Tools ############################################## Function: 编译安装(Compile Install) libxml2-2.9.1
# ##################################################
function Compile_Install_libxml2_2_9_1() {if [[ ! -d /opt/libxml2-2.9.1 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CONFIGURED0local STEP_INSTALLED0# ------------------------------------------echo [Confirm] Compile and Install ( libxml2-2.9.1 )? (y/n)# ..........................................read VERIFY# ..........................................if [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/libxml2-2.9.1.tar.gz STEP_UNZIPPED1# ------------------------------------------cd $STORAGE/libxml2-2.9.1 ./configure --prefix/opt/libxml2-2.9.1 STEP_CONFIGURED1# ------------------------------------------make make install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................ln -sf /opt/libxml2-2.9.1/bin/xml2-config /usr/local/bin/ln -sf /opt/libxml2-2.9.1/bin/xmlcatalog /usr/local/bin/ln -sf /opt/libxml2-2.9.1/bin/xmllint /usr/local/bin/# ......................................rsync -av /opt/libxml2-2.9.1/include/ /usr/local/include/rsync -av /opt/libxml2-2.9.1/lib/ /usr/local/lib/# ......................................cp -f /opt/libxml2-2.9.1/lib/pkgconfig/libxml-2.0.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/libxml2-2.9.1 return 0elseecho [Caution] Path: ( /opt/libxml2-2.9.1 ) Already Exists.# ------------------------------------------return 0fi
}# Function: 编译安装(Compile Install) expat-2.5.0
# ##################################################
function Compile_Install_expat_2_5_0() {if [[ ! -d /opt/expat-2.5.0 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CONFIGURED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Compile and Install ( expat-2.5.0 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/expat-2.5.0.tar.gz STEP_UNZIPPED1# ------------------------------------------cd $STORAGE/expat-2.5.0 ./configure --prefix/opt/expat-2.5.0 STEP_CONFIGURED1# ------------------------------------------make make install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................ln -sf /opt/expat-2.5.0/bin/xmlwf /usr/local/bin/# ......................................rsync -av /opt/expat-2.5.0/include/ /usr/local/include/rsync -av /opt/expat-2.5.0/lib/ /usr/local/lib/# ......................................cp -f /opt/expat-2.5.0/lib/pkgconfig/expat.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/expat-2.5.0 return 0elseecho [Caution] Path: ( /opt/expat-2.5.0 ) Already Exists.# ------------------------------------------return 0fi
}# Function: 编译安装(Compile Install) libxslt-1.1.28
# ##################################################
function Compile_Install_libxslt_1_1_28() {if [[ ! -d /opt/libxslt-1.1.28 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CONFIGURED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Compile and Install ( libxslt-1.1.28 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/libxslt-1.1.28.tar.gz STEP_UNZIPPED1# ------------------------------------------cd $STORAGE/libxslt-1.1.28 ./configure --prefix/opt/libxslt-1.1.28 STEP_CONFIGURED1# ------------------------------------------make make install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................ln -sf /opt/libxslt-1.1.28/bin/xslt-config /usr/local/bin/ln -sf /opt/libxslt-1.1.28/bin/xsltproc /usr/local/bin/# ......................................rsync -av /opt/libxslt-1.1.28/include/ /usr/local/include/rsync -av /opt/libxslt-1.1.28/lib/ /usr/local/lib/# ......................................cp -f /opt/libxslt-1.1.28/lib/pkgconfig/libexslt.pc /opt/lib/pkgconfig/cp -f /opt/libxslt-1.1.28/lib/pkgconfig/libxslt.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/libxslt-1.1.28 return 0elseecho [Caution] Path: ( /opt/libxslt-1.1.28 ) Already Exists.# ------------------------------------------return 0fi
}# Function: 编译安装(Compile Install) xmlto-0.0.28
# ##################################################
function Compile_Install_xmlto_0_0_28() {if [[ ! -d /opt/xmlto-0.0.28 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CONFIGURED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Compile and Install ( xmlto-0.0.28 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -jxvf $STORAGE/xmlto-0.0.28.tar.bz2 STEP_UNZIPPED1# ------------------------------------------cd $STORAGE/xmlto-0.0.28 ./configure --prefix/opt/xmlto-0.0.28 STEP_CONFIGURED1# ------------------------------------------make make install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenln -sf /opt/xmlto-0.0.28/bin/xmlif /usr/local/bin/ln -sf /opt/xmlto-0.0.28/bin/xmlto /usr/local/bin/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/xmlto-0.0.28 return 0elseecho [Caution] Path: ( /opt/xmlto-0.0.28 ) Already Exists.# ------------------------------------------return 0fi
}# ############################## XML Tools (XSL Stylesheets) DocBook-XSL ############################## Function: 部署安装(Deploy Install) XSL-Stylesheets: DocBook-XSL-1.79.1
# ##################################################
function Deploy_Install_XSL_Stylesheets_DocBook_XSL_1_79_1() {if [[ ! -d /usr/share/xml/docbook/xsl-stylesheets-1.79.1 ]]; then# 安装目录: /usr/share/xml/docbook/xsl-stylesheets-1.79.1 和 /usr/share/doc/docbook-xsl-1.79.1# Installed Directories: /usr/share/xml/docbook/xsl-stylesheets-1.79.1 and /usr/share/doc/docbook-xsl-1.79.1local VERIFYlocal STEP_UNZIPPED0local STEP_INSTALLED0local STEP_CONFIGURED0# ------------------------------------------read -p [Confirm] Deploy and Install ( XSL-Stylesheets: DocBook-XSL-1.79.1 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -jxvf $STORAGE/docbook-xsl-1.79.1.tar.bz2 \tar -jxvf $STORAGE/docbook-xsl-doc-1.79.1.tar.bz2 STEP_UNZIPPED1# ------------------------------------------cd $STORAGE/docbook-xsl-1.79.1# ------------------------------------------# 安装 DocBook XSL 样式表# Installation of DocBook XSL Stylesheetsinstall -v -m755 -d /usr/share/xml/docbook/xsl-stylesheets-1.79.1 cp -v -R VERSION assembly common eclipse epub epub3 extensions fo \highlighting html htmlhelp images javahelp lib manpages params \profiling roundtrip slides template tests tools webhelp website \xhtml xhtml-1_1 xhtml5 \/usr/share/xml/docbook/xsl-stylesheets-1.79.1 ln -s VERSION /usr/share/xml/docbook/xsl-stylesheets-1.79.1/VERSION.xsl install -v -m644 -D README \/usr/share/doc/docbook-xsl-1.79.1/README.txt install -v -m644 RELEASE-NOTES* NEWS* \/usr/share/doc/docbook-xsl-1.79.1# ------------------------------------------cd $STORAGE/docbook-xsl-doc-1.79.1# ------------------------------------------# 如果下载了可选的源码文档 tarball, 请以 root 用户身份发出以下命令来安装源码文档: # If you downloaded the optional documentation tarball, install the documentation by issuing the following command as the root user:cp -v -R doc/* /usr/share/doc/docbook-xsl-1.79.1# ------------------------------------------# 配置 DocBook XSL 样式表# Configuring DocBook XSL Stylesheetsif [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi if [ ! -f /etc/xml/catalog ]; thenxmlcatalog --noout --create /etc/xml/catalogfi xmlcatalog --noout --add rewriteSystem \http://docbook.sourceforge.net/release/xsl/1.79.1 \/usr/share/xml/docbook/xsl-stylesheets-1.79.1 \/etc/xml/catalog xmlcatalog --noout --add rewriteURI \http://docbook.sourceforge.net/release/xsl/1.79.1 \/usr/share/xml/docbook/xsl-stylesheets-1.79.1 \/etc/xml/catalog xmlcatalog --noout --add rewriteSystem \http://docbook.sourceforge.net/release/xsl/current \/usr/share/xml/docbook/xsl-stylesheets-1.79.1 \/etc/xml/catalog xmlcatalog --noout --add rewriteURI \http://docbook.sourceforge.net/release/xsl/current \/usr/share/xml/docbook/xsl-stylesheets-1.79.1 \/etc/xml/catalog# ------------------------------------------cd $STORAGE rm -rf $STORAGE/docbook-xsl-1.79.1 \cd $STORAGE rm -rf $STORAGE/docbook-xsl-doc-1.79.1 return 0elseecho [Caution] Path: ( /usr/share/xml/docbook/xsl-stylesheets-1.79.1 ) Already Exists.# ------------------------------------------return 0fi
}# ################################## Graphviz Dep: Cairo (Optional) ################################### Function: 构建安装(Build Install) Pixman-0.43.4
# ##################################################
function Build_Install_Pixman_0_43_4() {# Pixman 是由三星工程师开发的像素操作库, 广泛应用于矢量图形 Cario 和 X 服务器等。# Pixman 能够提供低级像素处理能力, 同时具备图像合成、图形变化以及光栅化等功能。if [[ ! -d /opt/pixman-0.43.4 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_BUILDED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Build and Install ( pixman-0.43.4 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/pixman-0.43.4.tar.gz STEP_UNZIPPED1# ------------------------------------------cd $STORAGE/pixman-0.43.4 meson build/ --prefix/opt/pixman-0.43.4 \--pkg-config-path/opt/lib/pkgconfig \STEP_BUILDED1# ------------------------------------------cd $STORAGE/pixman-0.43.4 ninja -C build/ install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................rsync -av /opt/pixman-0.43.4/include/ /usr/local/include/rsync -av /opt/pixman-0.43.4/lib/ /usr/local/lib/# ......................................cp -f /opt/pixman-0.43.4/lib/pkgconfig/pixman-1.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/pixman-0.43.4 return 0elseecho [Caution] Path: ( /opt/pixman-0.43.4 ) Already Exists.# ------------------------------------------return 0fi
}# Function: 构建安装(Build Install) Cairo-1.18.0
# ##################################################
function Build_Install_Cairo_1_18_0() {# Attention: may conflict with the original Cairo in the system. Especially Ubuntu.# 注意: 可能与系统原有的 Cairo 冲突。尤其是 Ubuntu。if [[ ! -d /opt/cairo-1.18.0 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_BUILDED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Build and Install ( cairo-1.18.0 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -xvJf $STORAGE/cairo-1.18.0.tar.xz STEP_UNZIPPED1# ------------------------------------------# * Problem: Run-time dependency gobject-2.0 found: NO (tried pkgconfig and cmake)# Looking for a fallback subproject for the dependency gobject-2.0# Downloading glib source from https://download.gnome.org/sources/glib/2.74/glib-2.74.0.tar.xz# - Solve: 方法 A. 编译 Glib 库。# 方法 B. meson Build 添加 -Dglibdisabled 选项, 此选项禁用了 Glib, 因为特别是含有 Gnome 的发行版 Linux 中 Glib 是 Gnome 的基础, glib 已集成到系统, 没有完整的 Glib 供调用。# ..........................................# * Option: -Dxlib-xcbenabled: This switch enables several experimental Xlib/XCB functions used by some window managers.# 此选项启用了一些窗口管理器使用的几个实验性 Xlib/XCB 函数。cd $STORAGE/cairo-1.18.0 meson build/ --prefix/opt/cairo-1.18.0 \--buildtyperelease \--pkg-config-path/opt/lib/pkgconfig \STEP_BUILDED1# ------------------------------------------cd $STORAGE/cairo-1.18.0 ninja -C build/ install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................ln -sf /opt/cairo-1.18.0/bin/cairo-trace /usr/local/bin/# ......................................# Skip # rsync -av /opt/cairo-1.18.0/include/ /usr/local/include/# Skip # rsync -av /opt/cairo-1.18.0/lib/ /usr/local/lib/# ......................................cp -f /opt/cairo-1.18.0/lib/pkgconfig/*.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/cairo-1.18.0 return 0elseecho [Caution] Path: ( /opt/cairo-1.18.0 ) Already Exists.# ------------------------------------------return 0fi
}# ################################## Graphviz Dep: Pango (Optional) ################################### Function: 构建安装(Build Install) FriBidi-1.0.13
# ##################################################
function Build_Install_FriBidi_1_0_13() {# Attention: may conflict with the original FriBidi in the system. Especially Ubuntu.# 注意: 可能与系统原有的 FriBidi 冲突。尤其是 Ubuntu。if [[ ! -d /opt/fribidi-1.0.13 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_BUILDED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Build and Install ( fribidi-1.0.13 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -xvJf $STORAGE/fribidi-1.0.13.tar.xz STEP_UNZIPPED1# ------------------------------------------cd $STORAGE/fribidi-1.0.13 meson build/ --prefix/opt/fribidi-1.0.13 \--buildtyperelease \--pkg-config-path/opt/lib/pkgconfig \STEP_BUILDED1# ------------------------------------------cd $STORAGE/fribidi-1.0.13 ninja -C build/ install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................# Skip # ln -sf /opt/fribidi-1.0.13/bin/fribidi /usr/local/bin/# ......................................# Skip # rsync -av /opt/fribidi-1.0.13/include/ /usr/local/include/# Skip # rsync -av /opt/fribidi-1.0.13/lib/ /usr/local/lib/# ......................................cp -f /opt/fribidi-1.0.13/lib/pkgconfig/fribidi.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/fribidi-1.0.13 return 0elseecho [Caution] Path: ( /opt/fribidi-1.0.13 ) Already Exists.# ------------------------------------------return 0fi
}# Function: 构建安装(Build Install) Graphite2-1.3.14
# ##################################################
function Build_Install_Graphite2_1_3_14() {if [[ ! -d /opt/graphite2-1.3.14 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CREATED0local STEP_BUILDED0local STEP_MADE0local STEP_DOCUMENTED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Build and Install ( graphite2-1.3.14 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/graphite2-1.3.14.tgz STEP_UNZIPPED1# ------------------------------------------# Some tests fail if FontTools (Python 3 module) is not installed. These tests can be removed with:# 如果未安装 FontTools (Python3 模块), 某些测试将失败。这些测试可以通过以下方式删除if [[ $STEP_UNZIPPED 1 ]]; thensed -i /cmptest/d $STORAGE/graphite2-1.3.14/tests/CMakeLists.txtfi# ------------------------------------------mkdir $STORAGE/graphite2-1.3.14/build STEP_CREATED1# ------------------------------------------# * Option: -DCMAKE_VERBOSE_MAKEFILEON: This switch turns on build verbose mode.# 此选项打开将生成详细模式。cd $STORAGE/graphite2-1.3.14/build cmake ../ -G Unix Makefiles \-DCMAKE_INSTALL_PREFIX/opt/graphite2-1.3.14 \-DCMAKE_BUILD_TYPERelease \STEP_BUILDED1# ------------------------------------------make STEP_MADE1# ------------------------------------------# If you wish to build the documentation, issue: make docs# 如果您希望构建文档, 请使用指令: make docs# Skip # make docs STEP_DOCUMENTED1# ------------------------------------------# To test the results, issue: make test. One test named nametabletest is known to fail.# 要测试结果, 请使用指令: 进行测试。已知有一个名为 nametabletest 的测试失败。make install STEP_INSTALLED1# ------------------------------------------# If you built the documentation, install, as the root user:# 如果您构建了文档, 请以 root 用户身份安装:if [[ $STEP_DOCUMENTED 1 ]]; theninstall -v -d -m755 /usr/share/doc/graphite2-1.3.14 cp -v -f doc/{GTF,manual}.html \/usr/share/doc/graphite2-1.3.14 cp -v -f doc/{GTF,manual}.pdf \/usr/share/doc/graphite2-1.3.14fi# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................ln -sf /opt/graphite2-1.3.14/bin/gr2fonttest /usr/local/bin/# ......................................# Skip # rsync -av /opt/graphite2-1.3.14/include/ /usr/local/include/# Skip # rsync -av /opt/graphite2-1.3.14/lib/ /usr/local/lib/# ......................................cp -f /opt/graphite2-1.3.14/lib/pkgconfig/graphite2.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/graphite2-1.3.14 return 0elseecho [Caution] Path: ( /opt/graphite2-1.3.14 ) Already Exists.# ------------------------------------------return 0fi
}# Function: 构建安装(Build Install) HarfBuzz-8.3.0
# ##################################################
function Build_Install_HarfBuzz_8_3_0() {# Attention: may conflict with the original HarfBuzz in the system. Especially Ubuntu.# 注意: 可能与系统原有的 HarfBuzz 冲突。尤其是 Ubuntu。if [[ ! -d /opt/harfbuzz-8.3.0 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_BUILDED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Build and Install ( harfbuzz-8.3.0 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -xvJf $STORAGE/harfbuzz-8.3.0.tar.xz STEP_UNZIPPED1# ------------------------------------------# Skip # export PATH$PATH:/opt/glib-2.78.4/bin# Skip # export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/opt/pcre2-10.43/lib# ------------------------------------------# * Option: --buildtyperelease: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.# 指定一个适用于包的稳定版本的构建类型, 因为默认情况下可能会生成未优化的二进制文件。# ...............................# -Dgraphite2enabled: This switch enables Graphite2 support, which is required for building texlive-20230313 or LibreOffice-24.2.1.2 with system harfbuzz.# 此选项启用 Graphite2 支持, 这是使用系统 harfbuzz 构建 texlive-20230313 或 LibreOffice-24.1.2 所必需的。# ...............................# -Ddocsdisabled: If GTK-Doc-1.34.0 is installed, the documentation is built and installed. This switch prevents that.# 如果安装了GTK-Doc-1.34.0, 则生成并安装文档。这个选项可以防止这种情况发生。# ...............................# * Problem: Program glib-mkenums mkenums found: NO# src/meson.build:902:2: ERROR: Program glib-mkenums mkenums not found or not executable# - Solve: 找不到可执行文件 glib-mkenums (由于 glib 可执行文件和库文件加载进系统可能造成内核崩溃, 只在需要时调用)。# 编译前使用指令: export PATH$PATH:/opt/glib-2.78.4/bin# ..........................................# * Problem: /usr/bin/ld: warning: libpcre2-8.so.0, needed by /opt/glib-2.78.4/lib/libglib-2.0.so, not found (try using -rpath or -rpath-link)# /opt/glib-2.78.4/lib/libglib-2.0.so对‘pcre2_get_ovector_count_8’未定义的引用# - Solve: 找不到 PCRE2 的 libpcre2-8.so.0 库文件 (由于 PCRE2 库文件加载进系统可能造成内核崩溃, 只在需要时调用)。# 编译前使用指令: export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/opt/pcre2-10.43/libcd $STORAGE/harfbuzz-8.3.0 meson setup build/ --prefix/opt/harfbuzz-8.3.0 \--buildtyperelease \--pkg-config-path/opt/lib/pkgconfig \-Dgraphite2enabled \STEP_BUILDED1# ------------------------------------------cd $STORAGE/harfbuzz-8.3.0 ninja -C build/ install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................# Skip # ln -sf /opt/harfbuzz-8.3.0/bin/* /usr/local/bin/# ......................................# Skip # rsync -av /opt/harfbuzz-8.3.0/include/ /usr/local/include/# Skip # rsync -av /opt/harfbuzz-8.3.0/lib/ /usr/local/lib/# ......................................cp -f /opt/harfbuzz-8.3.0/lib/pkgconfig/*.pc /opt/lib/pkgconfig/# ......................................# 重新编译安装 (Recompile Reinstall) 第 1 步: 重新编译安装 FreeType-2.12.0。# After HarfBuzz-8.3.0 is installed, reinstall FreeType-2.12.0# 安装 HarfBuzz-8.3.0 后, 重新安装 FreeType-2.12.0。if [[ -d /opt/freetype-2.12.0 ]]; then rm -rf /opt/freetype-2.12.0; fi# ......................................# 重新编译安装 (Recompile Reinstall) 第 2 步: 重新编译安装 Fontconfig-2.15.0。# Fontconfig-2.15.0 must be built with FreeType-2.12.0 using HarfBuzz-8.3.0# Fontconfig-2.15.0 必须使用 HarfBuzz-8.3.0 构建的 FreeType-2.12.0。if [[ -d /opt/fontconfig-2.15.0 ]]; then rm -rf /opt/fontconfig-2.15.0; fifi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/harfbuzz-8.3.0 return 0elseecho [Caution] Path: ( /opt/harfbuzz-8.3.0 ) Already Exists.# ------------------------------------------return 0fi
}# Function: 编译安装(Compile Install) freetype-2.12.0
# ##################################################
function Compile_Install_freetype_2_12_0() {if [[ ! -d /opt/freetype-2.12.0 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CONFIGURED0local STEP_INSTALLED0# ------------------------------------------echo [Confirm] Compile and Install ( freetype-2.12.0 )? (y/n)# ..........................................read VERIFY# ..........................................if [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/freetype-2.12.0.tar.gz STEP_UNZIPPED1# ------------------------------------------# * Problem: /usr/bin/ld: //usr/local/lib/libbz2.a(blocksort.o): relocation R_X86_64_PC32 against symbol stderrGLIBC_2.2.5 can not be used when making a shared object; recompile with -fPIC# /usr/bin/ld: final link failed: Bad value# collect2: error: ld returned 1 exit status# config.mk:55: recipe for target /home/goufeng/freetype-2.12.0/objs/libfreetype.la failed# - Solve: 在对 bzip2 执行 make 前, 修改 Makefile。# # To assist in cross-compiling# CCgcc -fPIC # - 第 1 处修改, 加上 -fPIC。# ARar# RANLIBranlib# LDFLAGS# # BIGFILES-D_FILE_OFFSET_BITS64# CFLAGS-Wall -Winline -O2 -fPIC -g $(BIGFILES) # - 第 2 处修改, 加上 -fPIC。# (第 1 处貌似是外层, 我先是在第 2 处修改后依旧不起作用的时候, 在第 1 处也添加了)# 然后进行 make -f Makefile-libbz2_so (在当前目录生成 Shared Library libbz2.so) 或者 make install。cd $STORAGE/freetype-2.12.0 ./configure --prefix/opt/freetype-2.12.0 STEP_CONFIGURED1# ------------------------------------------make make install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................rsync -av /opt/freetype-2.12.0/include/ /usr/local/include/rsync -av /opt/freetype-2.12.0/lib/ /usr/local/lib/# ......................................cp -f /opt/freetype-2.12.0/lib/pkgconfig/freetype2.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/freetype-2.12.0 return 0elseecho [Caution] Path: ( /opt/freetype-2.12.0 ) Already Exists.# ------------------------------------------return 0fi
}# Function: 编译安装(Compile Install) fontconfig-2.15.0
# ##################################################
function Compile_Install_fontconfig_2_15_0() {if [[ ! -d /opt/fontconfig-2.15.0 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CONFIGURED0local STEP_INSTALLED0# ------------------------------------------echo [Confirm] Compile and Install ( fontconfig-2.15.0 )? (y/n)# ..........................................read VERIFY# ..........................................if [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -xvJf $STORAGE/fontconfig-2.15.0.tar.xz STEP_UNZIPPED1# ------------------------------------------cd $STORAGE/fontconfig-2.15.0 ./configure --prefix/opt/fontconfig-2.15.0 \PKG_CONFIG_PATH/opt/lib/pkgconfig \STEP_CONFIGURED1# ------------------------------------------make make install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................ln -sf /opt/fontconfig-2.15.0/bin/* /usr/local/bin/# ......................................rsync -av /opt/fontconfig-2.15.0/include/ /usr/local/include/rsync -av /opt/fontconfig-2.15.0/lib/ /usr/local/lib/# ......................................cp -f /opt/fontconfig-2.15.0/lib/pkgconfig/fontconfig.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/fontconfig-2.15.0 return 0elseecho [Caution] Path: ( /opt/fontconfig-2.15.0 ) Already Exists.# ------------------------------------------return 0fi
}# Function: 构建安装(Build Install) Pango-1.51.2
# ##################################################
function Build_Install_Pango_1_51_2() {# Attention: may conflict with the original Pango in the system. Especially Ubuntu.# 注意: 可能与系统原有的 Pango 冲突。尤其是 Ubuntu。if [[ ! -d /opt/pango-1.51.2 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_BUILDED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Build and Install ( pango-1.51.2 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -xvJf $STORAGE/pango-1.51.2.tar.xz STEP_UNZIPPED1# ------------------------------------------# Skip # export PATH$PATH:/opt/glib-2.78.4/bin# Skip # export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/opt/pcre2-10.43/lib# ------------------------------------------# * Option: --wrap-modenofallback: This switch prevents meson from using subproject fallbacks for any dependency declarations in the build files,# stopping it downloading any optional dependency which is not installed on the system.# 这个选项防止 Meson 对构建文件中的任何依赖项声明使用子项目回退, 从而阻止它下载任何未安装在系统上的可选依赖项。cd $STORAGE/pango-1.51.2 meson build/ --prefix/opt/pango-1.51.2 \--buildtyperelease \--wrap-modenofallback \--pkg-config-path/opt/lib/pkgconfig \STEP_BUILDED1# ------------------------------------------cd $STORAGE/pango-1.51.2 ninja -C build/ install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................# Skip # ln -sf /opt/pango-1.51.2/bin/* /usr/local/bin/# ......................................# Skip # rsync -av /opt/pango-1.51.2/include/ /usr/local/include/# Skip # rsync -av /opt/pango-1.51.2/lib/ /usr/local/lib/# ......................................cp -f /opt/pango-1.51.2/lib/pkgconfig/*.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/pango-1.51.2 return 0elseecho [Caution] Path: ( /opt/pango-1.51.2 ) Already Exists.# ------------------------------------------return 0fi
}# ################################### Graphviz Dep: GTS (Optional) #################################### Function: 编译安装(Compile Install) GTS-0.7.6
# ##################################################
function Compile_Install_GTS_0_7_6() {if [[ ! -d /opt/gts-0.7.6 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CONFIGURED0local STEP_INSTALLED0# ------------------------------------------echo [Confirm] Compile and Install ( gts-0.7.6 )? (y/n)# ..........................................read VERIFY# ..........................................if [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/gts-0.7.6.tar.gz STEP_UNZIPPED1# ------------------------------------------
# checking for glib-config... /usr/bin/glib-config
# checking for GLIB - version 1.2.8... ./configure: line 21356: /usr/bin/glib-config: No such file or directorycd $STORAGE/gts-0.7.6 ./configure --prefix/opt/gts-0.7.6 \PKG_CONFIG_PATH/opt/lib/pkgconfig \STEP_CONFIGURED1# ------------------------------------------make make install STEP_INSTALLED1# ------------------------------------------cd $STORAGE rm -rf $STORAGE/gts-0.7.6 return 0elseecho [Caution] Path: ( /opt/gts-0.7.6 ) Already Exists.# ------------------------------------------return 0fi
}# ############################################# Graphviz ############################################## Function: 编译安装(Compile Install) Graphviz-8.1.0
# ##################################################
function Compile_Install_Graphviz_8_1_0() {# Graphviz 默认不能识别 .png 和 .jpeg 格式, 需要安装编译有 libpng 和 jpeg 支持的 libGD 库。# Graphviz does not recognize .png and .jpeg formats by default, and requires the installation and compilation of libGD libraries supported by libpng and jpeg.if [[ ! -d /opt/graphviz-8.1.0 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CONFIGURED0local STEP_INSTALLED0# ------------------------------------------echo [Confirm] Compile and Install ( graphviz-8.1.0 )? (y/n)# ..........................................read VERIFY# ..........................................if [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/graphviz-8.1.0.tar.gz STEP_UNZIPPED1# ------------------------------------------# Skip # export PATH$PATH:/opt/glib-2.78.4/bin# Skip # export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/opt/pcre2-10.43/lib# ------------------------------------------cd $STORAGE/graphviz-8.1.0 ./configure --prefix/opt/graphviz-8.1.0 \PKG_CONFIG_PATH/opt/lib/pkgconfig \STEP_CONFIGURED1# ------------------------------------------make make install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................ln -sf /opt/graphviz-8.1.0/bin/* /usr/local/bin/# ......................................# Skip # rsync -av /opt/graphviz-8.1.0/lib/ /usr/local/lib/# ......................................cp -f /opt/graphviz-8.1.0/lib/pkgconfig/*.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/graphviz-8.1.0 return 0elseecho [Caution] Path: ( /opt/graphviz-8.1.0 ) Already Exists.# ------------------------------------------return 0fi
}# ############################################# Doxygen ############################################### Function: 构建安装(Build Install) Doxygen-1.10.0
# ##################################################
function Build_Install_Doxygen_1_10_0() {if [[ ! -d /opt/doxygen-1.10.0 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_CREATED0local STEP_BUILDED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Build and Install ( doxygen-1.10.0 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/doxygen-1.10.0.src.tar.gz STEP_UNZIPPED1# ------------------------------------------mkdir $STORAGE/doxygen-1.10.0/build STEP_CREATED1# ------------------------------------------# * Problem: [ 15%] Built target xml# [ 16%] Generating ../generated_src/configvalues.h# No module named pyexpat# - Solve: 查找路径问题, cp -r /usr/local/Python-3.8.0/lib/python3.8 /usr/local/lib/# ..........................................# * Problem: CMake Error at /opt/cmake-3.28.3/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):# Could NOT find Iconv (missing: ICONV_COMPILES)# - Solve: 回溯有关 iconv 的配置信息:# ......# -- Looking for iconv_open# -- Looking for iconv_open - found# -- Found Iconv: In glibc# -- Performing Test ICONV_COMPILES# -- Performing Test ICONV_COMPILES - Failed# ......# 如果其中有 -- Found Iconv: In glibc 后面还出现 Could NOT find Iconv (missing: ICONV_COMPILES), 则说明系统原有的 iconv 和新装的 iconv 冲突了。# 系统调用的是包含在 glibc 中的 iconv (iconv 是 glibc 中的内容) 却被新装的 iconv 的 include 或 library 抢占了加载优先级, 导致 iconv 测试失败。# 相关资料 (http://en.wikipedia.org/wiki/Iconv):# All recent Linux distributions contain a free implementation of iconv() as part of the GNU C Library which is the C library for current Linux systems.# To use it, the GNU glibc locales need to be installed, which are provided as a separate package (usually named glibc-locale) normally installed by default.# 移除新装的 iconv 后问题解决。cd $STORAGE/doxygen-1.10.0/build cmake ../ -G Unix Makefiles \-DCMAKE_BUILD_TYPERelease \-DCMAKE_INSTALL_PREFIX/opt/doxygen-1.10.0 \STEP_BUILDED1# ------------------------------------------make make install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenln -sf /opt/doxygen-1.10.0/bin/doxygen /usr/local/bin/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/doxygen-1.10.0 return 0elseecho [Caution] Path: ( /opt/doxygen-1.10.0 ) Already Exists.# ------------------------------------------return 0fi
}# ############################################# Wayland ############################################### Function: 构建安装(Build Install) Wayland-1.22.0
# ##################################################
function Build_Install_Wayland_1_22_0() {if [[ ! -d /opt/wayland-1.22.0 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_BUILDED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Build and Install ( wayland-1.22.0 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/wayland-1.22.0.tar.gz STEP_UNZIPPED1# ------------------------------------------# * Problem: Program dot found: NO# doc/meson.build:5:0: ERROR: Program dot not found or not executable# - Solve: Install Graphviz, 或者如果您不需要构建文档, 构建时添加 -Ddocumentationfalse 选项就会关闭文档, 则不需要 dot。# ..........................................# * Problem: Message: doxygen: 1.10.0 (GIT-NOTFOUND)# Message: dot: dot - graphviz version 8.1.0 (20230707.0739)# doc/meson.build:27:1: ERROR: Problem encountered: The style sheet for man pages providing http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl was not found.# - Solve: Install DocBook-XSL.cd $STORAGE/wayland-1.22.0 meson build/ --prefix/opt/wayland-1.22.0 \--pkg-config-path/opt/lib/pkgconfig \STEP_BUILDED1# ------------------------------------------# * Problem: [16/108] Generating doc/doxygen/xml/wayland-architecture.png with a custom command# FAILED: doc/doxygen/xml/wayland-architecture.png# /usr/local/bin/dot -Tpng -odoc/doxygen/xml/wayland-architecture.png ../doc/doxygen/dot/wayland-architecture.gv# Format: png not recognized. Use one of: canon cmap cmapx cmapx_np dot dot_json eps fig gv imap imap_np ismap json json0 mp pic plain plain-ext pov ps ps2 svg svgz tk xdot xdot1.2 xdot1.4 xdot_json# - Solve: Install libGD.cd $STORAGE/wayland-1.22.0 ninja -C build/ install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................ln -sf /opt/wayland-1.22.0/bin/* /usr/local/bin/# ......................................rsync -av /opt/wayland-1.22.0/include/ /usr/local/include/rsync -av /opt/wayland-1.22.0/lib/ /usr/local/lib/# ......................................cp -f /opt/wayland-1.22.0/lib/pkgconfig/*.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/wayland-1.22.0 return 0elseecho [Caution] Path: ( /opt/wayland-1.22.0 ) Already Exists.# ------------------------------------------return 0fi
}# ####################################### Wayland - Protocols ######################################### Function: 构建安装(Build Install) Wayland-Protocols-1.32
# ##################################################
function Build_Install_Wayland_Protocols_1_32() {if [[ ! -d /opt/wayland-protocols-1.32 ]]; thenlocal VERIFYlocal STEP_UNZIPPED0local STEP_BUILDED0local STEP_INSTALLED0# ------------------------------------------read -p [Confirm] Build and Install ( wayland-protocols-1.32 )? (y/n) VERIFYif [[ $VERIFY ! y ]]; then exit 1; fi# ------------------------------------------tar -zxvf $STORAGE/wayland-protocols-1.32.tar.gz STEP_UNZIPPED1# ------------------------------------------cd $STORAGE/wayland-protocols-1.32 meson build/ --prefix/opt/wayland-protocols-1.32 \--pkg-config-path/opt/lib/pkgconfig \STEP_BUILDED1# ------------------------------------------cd $STORAGE/wayland-protocols-1.32 ninja -C build/ install STEP_INSTALLED1# ------------------------------------------if [[ $STEP_INSTALLED 1 ]]; thenif [[ ! -d /opt/lib ]]; then mkdir /opt/lib; fiif [[ ! -d /opt/lib/pkgconfig ]]; then mkdir /opt/lib/pkgconfig; fi# ......................................cp -f /opt/wayland-protocols-1.32/share/pkgconfig/wayland-protocols.pc /opt/lib/pkgconfig/fi# ------------------------------------------cd $STORAGE rm -rf $STORAGE/wayland-protocols-1.32 return 0elseecho [Caution] Path: ( /opt/wayland-protocols-1.32 ) Already Exists.# ------------------------------------------return 0fi
}function main() {# ----------------- Dependency -----------------Compile_Install_libffi_3_4_4# ----------------- XML Tools ------------------Compile_Install_libxml2_2_9_1Compile_Install_expat_2_5_0Compile_Install_libxslt_1_1_28Compile_Install_xmlto_0_0_28# --- XML Tools (XSL Stylesheets) DocBook-XSL --Deploy_Install_XSL_Stylesheets_DocBook_XSL_1_79_1# ------- Graphviz Dep: Cairo (Optional) -------Build_Install_Pixman_0_43_4Build_Install_Cairo_1_18_0# ------- Graphviz Dep: Pango (Optional) -------Build_Install_FriBidi_1_0_13Build_Install_Graphite2_1_3_14Build_Install_HarfBuzz_8_3_0Compile_Install_freetype_2_12_0Compile_Install_fontconfig_2_15_0Build_Install_Pango_1_51_2# -------- Graphviz Dep: GTS (Optional) --------#Compile_Install_GTS_0_7_6# ------------------ Graphviz ------------------Compile_Install_Graphviz_8_1_0# ------------------ Doxygen -------------------Build_Install_Doxygen_1_10_0# ------------------ Wayland -------------------Build_Install_Wayland_1_22_0# ------------ Wayland - Protocols -------------Build_Install_Wayland_Protocols_1_32
}main总结
以上就是关于 Linux运维 Bash脚本 编译安装Wayland-1.22.0 的全部内容。
更多内容可以访问我的代码仓库:
https://gitee.com/goufeng928/public
https://github.com/goufeng928/public 文章转载自: http://www.morning.wfyqn.cn.gov.cn.wfyqn.cn http://www.morning.sryhp.cn.gov.cn.sryhp.cn http://www.morning.cxsdl.cn.gov.cn.cxsdl.cn http://www.morning.hilmwmu.cn.gov.cn.hilmwmu.cn http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn http://www.morning.rmpfh.cn.gov.cn.rmpfh.cn http://www.morning.tqgx.cn.gov.cn.tqgx.cn http://www.morning.glnmm.cn.gov.cn.glnmm.cn http://www.morning.zlgr.cn.gov.cn.zlgr.cn http://www.morning.jtszm.cn.gov.cn.jtszm.cn http://www.morning.chgmm.cn.gov.cn.chgmm.cn http://www.morning.ybyln.cn.gov.cn.ybyln.cn http://www.morning.lzqtn.cn.gov.cn.lzqtn.cn http://www.morning.ahlart.com.gov.cn.ahlart.com http://www.morning.ryxdr.cn.gov.cn.ryxdr.cn http://www.morning.ljcf.cn.gov.cn.ljcf.cn http://www.morning.rnqyy.cn.gov.cn.rnqyy.cn http://www.morning.wrfk.cn.gov.cn.wrfk.cn http://www.morning.wlstn.cn.gov.cn.wlstn.cn http://www.morning.lwhsp.cn.gov.cn.lwhsp.cn http://www.morning.gtqws.cn.gov.cn.gtqws.cn http://www.morning.gwmny.cn.gov.cn.gwmny.cn http://www.morning.sdamsm.com.gov.cn.sdamsm.com http://www.morning.hmfxl.cn.gov.cn.hmfxl.cn http://www.morning.blfgh.cn.gov.cn.blfgh.cn http://www.morning.srbl.cn.gov.cn.srbl.cn http://www.morning.cwrpd.cn.gov.cn.cwrpd.cn http://www.morning.ydxg.cn.gov.cn.ydxg.cn http://www.morning.ysbrz.cn.gov.cn.ysbrz.cn http://www.morning.njddz.cn.gov.cn.njddz.cn http://www.morning.pmbcr.cn.gov.cn.pmbcr.cn http://www.morning.ylqb8.cn.gov.cn.ylqb8.cn http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn http://www.morning.ndynz.cn.gov.cn.ndynz.cn http://www.morning.nqlnd.cn.gov.cn.nqlnd.cn http://www.morning.mjdbd.cn.gov.cn.mjdbd.cn http://www.morning.blqmn.cn.gov.cn.blqmn.cn http://www.morning.ptslx.cn.gov.cn.ptslx.cn http://www.morning.tbhlc.cn.gov.cn.tbhlc.cn http://www.morning.qgjxt.cn.gov.cn.qgjxt.cn http://www.morning.jrgxx.cn.gov.cn.jrgxx.cn http://www.morning.pxspq.cn.gov.cn.pxspq.cn http://www.morning.rrms.cn.gov.cn.rrms.cn http://www.morning.prmyx.cn.gov.cn.prmyx.cn http://www.morning.pxrfm.cn.gov.cn.pxrfm.cn http://www.morning.fkcjs.cn.gov.cn.fkcjs.cn http://www.morning.rtlth.cn.gov.cn.rtlth.cn http://www.morning.rxkl.cn.gov.cn.rxkl.cn http://www.morning.rnds.cn.gov.cn.rnds.cn http://www.morning.c7493.cn.gov.cn.c7493.cn http://www.morning.pgfkl.cn.gov.cn.pgfkl.cn http://www.morning.jpkhn.cn.gov.cn.jpkhn.cn http://www.morning.kxymr.cn.gov.cn.kxymr.cn http://www.morning.wwkdh.cn.gov.cn.wwkdh.cn http://www.morning.yrqb.cn.gov.cn.yrqb.cn http://www.morning.mjats.com.gov.cn.mjats.com http://www.morning.qqhersx.com.gov.cn.qqhersx.com http://www.morning.mkpqr.cn.gov.cn.mkpqr.cn http://www.morning.flxqm.cn.gov.cn.flxqm.cn http://www.morning.qfths.cn.gov.cn.qfths.cn http://www.morning.zlnyk.cn.gov.cn.zlnyk.cn http://www.morning.fthcq.cn.gov.cn.fthcq.cn http://www.morning.yjfmj.cn.gov.cn.yjfmj.cn http://www.morning.qljxm.cn.gov.cn.qljxm.cn http://www.morning.ccffs.cn.gov.cn.ccffs.cn http://www.morning.qzpsk.cn.gov.cn.qzpsk.cn http://www.morning.wwznd.cn.gov.cn.wwznd.cn http://www.morning.rwfp.cn.gov.cn.rwfp.cn http://www.morning.ffdyy.cn.gov.cn.ffdyy.cn http://www.morning.dbnrl.cn.gov.cn.dbnrl.cn http://www.morning.yymlk.cn.gov.cn.yymlk.cn http://www.morning.drywd.cn.gov.cn.drywd.cn http://www.morning.xjqrn.cn.gov.cn.xjqrn.cn http://www.morning.rwjtf.cn.gov.cn.rwjtf.cn http://www.morning.ccdyc.cn.gov.cn.ccdyc.cn http://www.morning.tqwcm.cn.gov.cn.tqwcm.cn http://www.morning.dfkmz.cn.gov.cn.dfkmz.cn http://www.morning.xxgfl.cn.gov.cn.xxgfl.cn http://www.morning.ddfp.cn.gov.cn.ddfp.cn http://www.morning.demoux.com.gov.cn.demoux.com