Linux運維_Bash腳本_部署安裝DocBook-XML-4.5(XML-DTD)
Bash (Bourne Again Shell) 是一個解釋器,負責處理 Unix 系統命令行上的命令。它是由 Brian Fox 編寫的免費軟件,并于 1989 年發布的免費軟件,作為 Sh (Bourne Shell) 的替代品。
您可以在 Linux 和 MacOS 機器上使用 Bash,甚至可以通過適用于 Linux 的 Windows 子系統在 Windows 10 機器上使用。
使用方法
- 下載源碼包:
docbook-xml-4.5.zip
- 放于指定路徑:
這里 Bash Shell 腳本的全局變量 STORAGE 指定的存放源碼包的路徑 /home/goufeng 可進行修改。
- 執行 Bash Shell 腳本:
輸入 /[路徑名]/[腳本名].sh 即可進行自動編譯部署,過程中提示輸入 (y/n) 輸入 y 則進行下一步,這樣分階段確認的原因是為了確保能夠看到上一個源碼編譯結果中可能的錯誤和提示。
完整腳本
#! /bin/bash
# Create By GF 2024-03-01 12:55# Need File: docbook-xml-4.5.zip# ##################################################
STORAGE=/home/goufeng# Function: 部署安裝(Deploy Install) XML-DTD: DocBook-XML-4.5
# ##################################################
function Deploy_Install_XML_DTD_DocBook_XML_4_5() {# Linux 的 install 命令用于安裝或升級軟件、備份數據。## 其常用的格式有: # # 1. install [OPTION]... SOURCE DEST: 將源文件復制到目標目錄。# # 2. install [OPTION]... SOURCE... DIRECTORY: 將多個源文件復制到已存在的目錄。# # 3. install -d [OPTION]... DIRECTORY...: 在指定目錄下創建新目錄。# # 常用的參數包括: # # 1. -c: 如果目標文件已經存在, 不覆蓋, 保留原有的文件。# # 2. -D: 如果目標文件是一個目錄, 則在該目錄下創建源文件的一個快捷方式。# # 3. -b: 如果目標文件已經存在, 則將目標文件備份, 并將源文件復制到目標文件路徑。# # 4. -m: 設置目標文件的權限。# # 5. -o: 設置目標文件的擁有者。# # 6. -p: 以源文件 訪問/修改 的時間作為目標文件的時間屬性, 即不改變文件的時間屬性。# # 7. -s: 對待拷貝的可執行文件進行 strip 操作, 取出文件中的符號表。if [[ ! -d "/usr/share/xml/docbook/xml-dtd-4.5" ]]; then# 安裝目錄: /etc/xml 和 /usr/share/xml/docbook/xml-dtd-4.5# Installed Directories: /etc/xml and /usr/share/xml/docbook/xml-dtd-4.5local VERIFYlocal STEP_UNZIPPED=0local STEP_INSTALLED=0local STEP_CONFIGURED=0# ------------------------------------------read -p "[Confirm] Deploy and Install ( XML-DTD: DocBook-XML-4.5)? (y/n)>" VERIFYif [[ "$VERIFY" != "y" ]]; then exit 1; fi# ------------------------------------------unzip $STORAGE/docbook-xml-4.5.zip -d docbook-xml-4.5 && STEP_UNZIPPED=1# ------------------------------------------cd $STORAGE/docbook-xml-4.5# ------------------------------------------# 安裝 DocBook XML DTD# Installation of DocBook XML DTD## 以根用戶身份運行以下命令, 安裝 DocBook XSL 樣式表: # Install DocBook XML DTD by running the following commands as the root user:install -v -d -m755 /usr/share/xml/docbook/xml-dtd-4.5 &&install -v -d -m755 /etc/xml &&cp -v -af --no-preserve=ownership docbook.cat *.dtd ent/ *.mod \/usr/share/xml/docbook/xml-dtd-4.5# ------------------------------------------# 配置 DocBook XML DTD# Configuring DocBook XML DTD## Config Files: /etc/xml/catalog# /etc/xml/docbook## /etc/xml/docbook 文件示例:# /etc/XML/docbook Example of File:## <?xml version="1.0"?># <!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"># <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"># <public publicId="-//OASIS//DTD DocBook XML V4.5//EN" uri="http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"/># <public publicId="-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" uri="file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd"/># <public publicId="-//OASIS//DTD XML Exchange Table Model 19990315//EN" uri="file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd"/># <public publicId="-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" uri="file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod"/># <public publicId="-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" uri="file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod"/># <public publicId="-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" uri="file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod"/># <public publicId="-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" uri="file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod"/># <public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" uri="file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod"/># <public publicId="-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" uri="file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod"/># <rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="file:///usr/share/xml/docbook/xml-dtd-4.5"/># <rewriteURI uriStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="file:///usr/share/xml/docbook/xml-dtd-4.5"/># </catalog>## /etc/xml/catalog 文件示例:# /etc/XML/catalog Example of File:## <?xml version="1.0"?># <!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd"># <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"># <rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl/1.79.1" rewritePrefix="/usr/share/xml/docbook/xsl-stylesheets-1.79.1"/># <rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl/1.79.1" rewritePrefix="/usr/share/xml/docbook/xsl-stylesheets-1.79.1"/># <rewriteSystem systemIdStartString="http://docbook.sourceforge.net/release/xsl/current" rewritePrefix="/usr/share/xml/docbook/xsl-stylesheets-1.79.1"/># <rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl/current" rewritePrefix="/usr/share/xml/docbook/xsl-stylesheets-1.79.1"/># <delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook XML" catalog="file:///etc/xml/docbook"/># <delegatePublic publicIdStartString="-//OASIS//DTD DocBook XML" catalog="file:///etc/xml/docbook"/># <delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/" catalog="file:///etc/xml/docbook"/># <delegateURI uriStartString="http://www.oasis-open.org/docbook/" catalog="file:///etc/xml/docbook"/># </catalog>## ..........................................# 以 root 用戶身份運行以下命令, 創建 (或更新) 并填充 /etc/xml/docbook 目錄文件:# Create (or update) and populate the /etc/xml/docbook catalog file by running the following commands as the root user:if [ ! -e /etc/xml/docbook ]; thenxmlcatalog --noout --create /etc/xml/docbookfi &&xmlcatalog --noout --add "public" \"-//OASIS//DTD DocBook XML V4.5//EN" \"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \/etc/xml/docbook &&xmlcatalog --noout --add "public" \"-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" \"file:///usr/share/xml/docbook/xml-dtd-4.5/calstblx.dtd" \/etc/xml/docbook &&xmlcatalog --noout --add "public" \"-//OASIS//DTD XML Exchange Table Model 19990315//EN" \"file:///usr/share/xml/docbook/xml-dtd-4.5/soextblx.dtd" \/etc/xml/docbook &&xmlcatalog --noout --add "public" \"-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" \"file:///usr/share/xml/docbook/xml-dtd-4.5/dbpoolx.mod" \/etc/xml/docbook &&xmlcatalog --noout --add "public" \"-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" \"file:///usr/share/xml/docbook/xml-dtd-4.5/dbhierx.mod" \/etc/xml/docbook &&xmlcatalog --noout --add "public" \"-//OASIS//ELEMENTS DocBook XML HTML Tables V4.5//EN" \"file:///usr/share/xml/docbook/xml-dtd-4.5/htmltblx.mod" \/etc/xml/docbook &&xmlcatalog --noout --add "public" \"-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" \"file:///usr/share/xml/docbook/xml-dtd-4.5/dbnotnx.mod" \/etc/xml/docbook &&xmlcatalog --noout --add "public" \"-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" \"file:///usr/share/xml/docbook/xml-dtd-4.5/dbcentx.mod" \/etc/xml/docbook &&xmlcatalog --noout --add "public" \"-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" \"file:///usr/share/xml/docbook/xml-dtd-4.5/dbgenent.mod" \/etc/xml/docbook &&xmlcatalog --noout --add "rewriteSystem" \"http://www.oasis-open.org/docbook/xml/4.5" \"file:///usr/share/xml/docbook/xml-dtd-4.5" \/etc/xml/docbook &&xmlcatalog --noout --add "rewriteURI" \"http://www.oasis-open.org/docbook/xml/4.5" \"file:///usr/share/xml/docbook/xml-dtd-4.5" \/etc/xml/docbook# ..........................................# 以 root 用戶身份運行以下命令, 創建 (或更新) 并填充 /etc/xml/catalog 目錄文件:# Create (or update) and populate the /etc/xml/catalog catalog file by running the following commands as the root user:if [ ! -e /etc/xml/catalog ]; thenxmlcatalog --noout --create /etc/xml/catalogfi &&xmlcatalog --noout --add "delegatePublic" \"-//OASIS//ENTITIES DocBook XML" \"file:///etc/xml/docbook" \/etc/xml/catalog &&xmlcatalog --noout --add "delegatePublic" \"-//OASIS//DTD DocBook XML" \"file:///etc/xml/docbook" \/etc/xml/catalog &&xmlcatalog --noout --add "delegateSystem" \"http://www.oasis-open.org/docbook/" \"file:///etc/xml/docbook" \/etc/xml/catalog &&xmlcatalog --noout --add "delegateURI" \"http://www.oasis-open.org/docbook/" \"file:///etc/xml/docbook" \/etc/xml/catalog# ------------------------------------------# 注意:# Caution:## 各種 BLFS 包在 V4.5 之前都要求 DocBook XML DTD 4.x 版本, 因此必須完成以下步驟才能成功構建這些包。# Various BLFS packages request DocBook XML DTD version 4.x before V4.5, so the following step must be done for those packages to be built successfully.## 上述安裝將創建文件并更新目錄。為了在系統標識符中請求任何 4.x 版本時使用 DocBook XML DTD V4.5, 您需要向目錄文件中添加其他語句。# 如果您的系統上已經安裝了下面引用的任何 DocBook XML DTD, 請從下面的 for 命令中刪除這些條目 (以 root 用戶身份執行命令):# The above installation creates the files and updates the catalogs. In order to utilize DocBook XML DTD V4.5 when any version 4.x is requested in the System Identifier, you need to add additional statements to the catalog files. # If you have any of the DocBook XML DTD's referenced below already installed on your system, remove those entries from the for command below (issue the commands as the root user):## for DTDVERSION in 4.1.2 4.2 4.3 4.4# do# xmlcatalog --noout --add "public" \# "-//OASIS//DTD DocBook XML V$DTDVERSION//EN" \# "http://www.oasis-open.org/docbook/xml/$DTDVERSION/docbookx.dtd" \# /etc/xml/docbook# xmlcatalog --noout --add "rewriteSystem" \# "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \# "file:///usr/share/xml/docbook/xml-dtd-4.5" \# /etc/xml/docbook# xmlcatalog --noout --add "rewriteURI" \# "http://www.oasis-open.org/docbook/xml/$DTDVERSION" \# "file:///usr/share/xml/docbook/xml-dtd-4.5" \# /etc/xml/docbook# xmlcatalog --noout --add "delegateSystem" \# "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \# "file:///etc/xml/docbook" \# /etc/xml/catalog# xmlcatalog --noout --add "delegateURI" \# "http://www.oasis-open.org/docbook/xml/$DTDVERSION/" \# "file:///etc/xml/docbook" \# /etc/xml/catalog# done# ------------------------------------------cd $STORAGE && rm -rf $STORAGE/docbook-xml-4.5 && return 0elseecho "[Caution] Path: ( /usr/share/xml/docbook/xml-dtd-4.5 ) Already Exists."# ------------------------------------------return 0fi
}function main() {Deploy_Install_XML_DTD_DocBook_XML_4_5
}main
總結
以上就是關于 Linux運維 Bash腳本 部署安裝DocBook-XML-4.5(XML-DTD) 的全部內容。
更多內容可以訪問我的代碼倉庫:
https://gitee.com/goufeng928/public
https://github.com/goufeng928/public