Skip to content

Commit 8a6c786

Browse files
committed
Deployed 4b7cb5b to 0.5 with MkDocs 1.6.0 and mike 2.1.3
1 parent 4b7cb5b commit 8a6c786

File tree

6 files changed

+353
-59
lines changed

6 files changed

+353
-59
lines changed
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
#!/bin/sh
2+
set -e
3+
set -o noglob
4+
5+
BREW_APP_OPENFST_NAME="openfst"
6+
BREW_APP_OPENFST_VERSION="1.8.3"
7+
8+
LOAD_DIR=""
9+
10+
# --- helper functions for logs ---
11+
info()
12+
{
13+
echo '[INFO] ' "$@"
14+
}
15+
warn()
16+
{
17+
echo '[WARN] ' "$@" >&2
18+
}
19+
fatal()
20+
{
21+
echo '[ERROR] ' "$@" >&2
22+
exit 1
23+
}
24+
25+
# --- parse parameters ---
26+
while [ "$#" -gt 0 ]; do
27+
case $1 in
28+
--load-dir)
29+
LOAD_DIR="$2"
30+
shift 2
31+
;;
32+
*)
33+
echo "Unknown parameter passed: $1"
34+
exit 1
35+
;;
36+
esac
37+
done
38+
39+
if [ -z "$LOAD_DIR" ]; then
40+
fatal "--load-dir parameter is required."
41+
fi
42+
43+
# --- load dependencies ---
44+
45+
# Function to prepare OpenFST
46+
load_dependency_openfst() {
47+
info "Loading dependency..."
48+
49+
if ! command -v brew > /dev/null 2>&1; then
50+
fatal "Homebrew is required but missing. Please install Homebrew."
51+
else
52+
# audio dependency library
53+
load_brew_tap "$BREW_APP_OPENFST_NAME" "$BREW_APP_OPENFST_VERSION"
54+
load_brew_app "$BREW_APP_OPENFST_NAME" "$BREW_APP_OPENFST_VERSION"
55+
fi
56+
57+
info "dependency loaded."
58+
}
59+
60+
# Function to load the Homebrew application
61+
load_brew_app() {
62+
BREW_APP_NAME="$1"
63+
BREW_APP_VERSION="$2"
64+
TAP_NAME="$USER/local-$BREW_APP_NAME-$BREW_APP_VERSION"
65+
BREW_APP_NAME_WITH_VERSION="$BREW_APP_NAME@$BREW_APP_VERSION"
66+
67+
info "Loading brew application $BREW_APP_NAME_WITH_VERSION."
68+
69+
# Check current installed versions
70+
info "Checking installed versions of $BREW_APP_NAME."
71+
INSTALLED_VERSIONS=$(brew list --versions | grep "$BREW_APP_NAME" || true)
72+
INSTALLED_VERSION_COUNT=$(brew list --versions | grep -c "$BREW_APP_NAME" || true)
73+
INSTALLED_NEEDED_VERSION_COUNT=$(brew list --versions | grep -c "$BREW_APP_NAME_WITH_VERSION" || true)
74+
75+
if [ -n "$INSTALLED_VERSIONS" ]; then
76+
# Check if the target version is already installed
77+
if [ "$INSTALLED_VERSION_COUNT" -eq 1 ] && [ "$INSTALLED_NEEDED_VERSION_COUNT" -eq 1 ]; then
78+
info "$BREW_APP_NAME_WITH_VERSION is already installed."
79+
return 0
80+
elif [ "$INSTALLED_VERSION_COUNT" -gt 1 ]; then
81+
SINGLE_LINE_INSTALLED_VERSIONS=$(echo "$INSTALLED_VERSIONS" | tr '\n' ' ')
82+
info "Installed $BREW_APP_NAME versions: $SINGLE_LINE_INSTALLED_VERSIONS"
83+
info "Multiple versions of $BREW_APP_NAME are installed, relink the target version."
84+
echo "$INSTALLED_VERSIONS" | awk '{print $1}' | while read -r installed_version; do
85+
brew unlink "$installed_version"
86+
done
87+
88+
NEED_VERSION=$(echo "$INSTALLED_VERSIONS" | grep "$BREW_APP_NAME_WITH_VERSION" | cut -d ' ' -f 1)
89+
if [ -n "$NEED_VERSION" ]; then
90+
info "Relinking $NEED_VERSION..."
91+
brew link --overwrite "$NEED_VERSION"
92+
return 0
93+
fi
94+
fi
95+
fi
96+
97+
info "Copying $BREW_APP_NAME_WITH_VERSION to the brew cache directory..."
98+
BACKUP_BREW_APP_FILE_SUFFIX="--$BREW_APP_NAME-$BREW_APP_VERSION.tar.gz"
99+
# shellcheck disable=SC2010
100+
BACKUP_BREW_APP_PATH="$(ls "$LOAD_DIR" | grep -F -- "$BACKUP_BREW_APP_FILE_SUFFIX")"
101+
BREW_CACHE_DIR="$(brew --cache)/downloads"
102+
mkdir -p "$BREW_CACHE_DIR"
103+
cp "$LOAD_DIR/$BACKUP_BREW_APP_PATH" "$BREW_CACHE_DIR"
104+
105+
info "Installing $BREW_APP_NAME_WITH_VERSION..."
106+
HOMEBREW_NO_AUTO_UPDATE=1 brew install "$TAP_NAME/$BREW_APP_NAME_WITH_VERSION"
107+
}
108+
109+
# Function to load the Homebrew tap
110+
load_brew_tap() {
111+
BREW_APP_NAME="$1"
112+
BREW_APP_VERSION="$2"
113+
TAP_NAME="$USER/local-$BREW_APP_NAME-$BREW_APP_VERSION"
114+
TAP_SHORT_NAME=$(echo "$TAP_NAME" | cut -d '/' -f 2)
115+
116+
117+
info "Loading brew tap $TAP_NAME."
118+
119+
if brew tap-info "$TAP_NAME" 2>/dev/null | grep -q "Installed"; then
120+
info "Tap $TAP_NAME already exists. Skipping tap creation."
121+
else
122+
info "Creating tap: $TAP_NAME..."
123+
124+
TAP_PATH_DIRNAME="$(brew --prefix)/Library/Taps/$USER"
125+
# shellcheck disable=SC2010
126+
TAP_BACKUP_PATH="$(ls "$LOAD_DIR" | grep "$TAP_SHORT_NAME")"
127+
mkdir -p "$TAP_PATH_DIRNAME"
128+
tar -xzf "$TAP_BACKUP_PATH" -C "$TAP_PATH_DIRNAME"
129+
fi
130+
}
131+
132+
# Main process
133+
{
134+
load_dependency_openfst
135+
}
Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
#!/bin/sh
2+
set -e
3+
set -o noglob
4+
5+
BREW_APP_OPENFST_NAME="openfst"
6+
BREW_APP_OPENFST_VERSION="1.8.3"
7+
8+
# --- helper functions for logs ---
9+
info()
10+
{
11+
echo '[INFO] ' "$@"
12+
}
13+
warn()
14+
{
15+
echo '[WARN] ' "$@" >&2
16+
}
17+
fatal()
18+
{
19+
echo '[ERROR] ' "$@" >&2
20+
exit 1
21+
}
22+
23+
# --- save the dependencies ---
24+
25+
# Function to save OpenFST
26+
save_dependency_openfst() {
27+
info "Saving dependency..."
28+
29+
if ! command -v brew > /dev/null 2>&1; then
30+
fatal "Homebrew is required but missing. Please install Homebrew."
31+
else
32+
# audio dependency library
33+
brew_install_with_version "$BREW_APP_OPENFST_NAME" "$BREW_APP_OPENFST_VERSION"
34+
save_brew_app "$BREW_APP_OPENFST_NAME" "$BREW_APP_OPENFST_VERSION"
35+
save_brew_tap "$BREW_APP_OPENFST_NAME" "$BREW_APP_OPENFST_VERSION"
36+
fi
37+
38+
info "Dependency saved."
39+
}
40+
41+
# Function to install a specific version of a Homebrew application
42+
brew_install_with_version() {
43+
BREW_APP_NAME="$1"
44+
BREW_APP_VERSION="$2"
45+
BREW_APP_NAME_WITH_VERSION="$BREW_APP_NAME@$BREW_APP_VERSION"
46+
TAP_NAME="$USER/local-$BREW_APP_NAME-$BREW_APP_VERSION"
47+
48+
# Check current installed versions
49+
info "Checking installed versions of $BREW_APP_NAME."
50+
INSTALLED_VERSIONS=$(brew list --versions | grep "$BREW_APP_NAME" || true)
51+
INSTALLED_VERSION_COUNT=$(brew list --versions | grep -c "$BREW_APP_NAME" || true)
52+
INSTALLED_NEEDED_VERSION_COUNT=$(brew list --versions | grep -c "$BREW_APP_NAME_WITH_VERSION" || true)
53+
54+
if [ -n "$INSTALLED_VERSIONS" ]; then
55+
# Check if the target version is already installed
56+
if [ "$INSTALLED_VERSION_COUNT" -eq 1 ] && [ "$INSTALLED_NEEDED_VERSION_COUNT" -eq 1 ]; then
57+
info "$BREW_APP_NAME_WITH_VERSION is already installed."
58+
return 0
59+
elif [ "$INSTALLED_VERSION_COUNT" -gt 1 ]; then
60+
SINGLE_LINE_INSTALLED_VERSIONS=$(echo "$INSTALLED_VERSIONS" | tr '\n' ' ')
61+
info "Installed $BREW_APP_NAME versions: $SINGLE_LINE_INSTALLED_VERSIONS"
62+
info "Multiple versions of $BREW_APP_NAME are installed, relink the target version."
63+
echo "$INSTALLED_VERSIONS" | awk '{print $1}' | while read -r installed_version; do
64+
brew unlink "$installed_version"
65+
done
66+
67+
NEED_VERSION=$(echo "$INSTALLED_VERSIONS" | grep "$BREW_APP_NAME_WITH_VERSION" | cut -d ' ' -f 1)
68+
if [ -n "$NEED_VERSION" ]; then
69+
info "Relinking $NEED_VERSION..."
70+
brew link --overwrite "$NEED_VERSION"
71+
return 0
72+
fi
73+
fi
74+
fi
75+
76+
# Create a new Homebrew tap
77+
if brew tap-info "$TAP_NAME" 2>/dev/null | grep -q "Installed"; then
78+
info "Tap $TAP_NAME already exists. Skipping tap creation."
79+
else
80+
info "Creating a new tap: $TAP_NAME..."
81+
if ! brew tap-new "$TAP_NAME"; then
82+
fatal "Failed to create the tap $TAP_NAME."
83+
fi
84+
fi
85+
86+
# Extract the history version of the app
87+
info "Extracting $BREW_APP_NAME version $BREW_APP_VERSION."
88+
brew tap homebrew/core --force
89+
brew extract --force --version="$BREW_APP_VERSION" "$BREW_APP_NAME" "$TAP_NAME"
90+
91+
# Install the specific version of the application
92+
info "Unlinking before install $BREW_APP_NAME."
93+
echo "$INSTALLED_VERSIONS" | awk '{print $1}' | while read -r installed_version; do
94+
brew unlink "$installed_version" 2>/dev/null || true
95+
done
96+
97+
info "Installing $BREW_APP_NAME version $BREW_APP_VERSION."
98+
if ! brew install "$TAP_NAME/$BREW_APP_NAME_WITH_VERSION"; then
99+
fatal "Failed to install $BREW_APP_NAME version $BREW_APP_VERSION."
100+
fi
101+
102+
info "Installed and linked $BREW_APP_NAME version $BREW_APP_VERSION."
103+
}
104+
105+
# Function to save the Homebrew application
106+
save_brew_app() {
107+
BREW_APP_NAME="$1"
108+
BREW_APP_VERSION="$2"
109+
BREW_APP_NAME_WITH_VERSION="$BREW_APP_NAME@$BREW_APP_VERSION"
110+
TAP_NAME="$USER/local-$BREW_APP_NAME-$BREW_APP_VERSION"
111+
112+
info "Saving brew application $BREW_APP_NAME_WITH_VERSION."
113+
114+
# Save the app
115+
brew fetch --deps "$TAP_NAME/$BREW_APP_NAME_WITH_VERSION"
116+
117+
# Get the cache path
118+
CACHE_PATH=$(brew --cache [email protected] "$BREW_APP_NAME_WITH_VERSION")
119+
cp "$CACHE_PATH" .
120+
}
121+
122+
# Function to save the Homebrew tap
123+
save_brew_tap() {
124+
BREW_APP_NAME="$1"
125+
BREW_APP_VERSION="$2"
126+
BREW_APP_NAME_WITH_VERSION="$BREW_APP_NAME@$BREW_APP_VERSION"
127+
TAP_NAME="$USER/local-$BREW_APP_NAME-$BREW_APP_VERSION"
128+
129+
info "Saving brew tap $TAP_NAME."
130+
131+
# TAP_PATH example: /opt/homebrew/Library/Taps/$USER/homebrew-local-openfst-1.8.3
132+
TAP_PATH=$(brew --repo "$TAP_NAME")
133+
TAP_PATH_DIRNAME=$(dirname "$TAP_PATH")
134+
TAP_PATH_BASENAME=$(basename "$TAP_PATH")
135+
TAP_SHORT_NAME=$(echo "$TAP_NAME" | cut -d '/' -f 2)
136+
tar -czf "$TAP_SHORT_NAME.tar.gz" -C "$TAP_PATH_DIRNAME" "$TAP_PATH_BASENAME"
137+
}
138+
139+
# Main process
140+
{
141+
save_dependency_openfst
142+
}

0.5/installation/air-gapped-installation/index.html

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1849,12 +1849,22 @@ <h3 id="step-1-download-the-required-packages">Step 1: Download the Required Pac
18491849
# Download dependency tools and save them as an archive
18501850
gpustack download-tools --save-archive gpustack_offline_tools.tar.gz</code></pre>
18511851
<p>Optional: Additional Dependencies for macOS.</p>
1852+
<p>Download save and load dependencies scripts:</p>
1853+
<ul>
1854+
<li><a href="../../assets/installation/air-gapped-installation/load_macos_dependencies.sh">load_macos_dependencies.sh</a></li>
1855+
<li><a href="../../assets/installation/air-gapped-installation/save_macos_dependencies.sh">save_macos_dependencies.sh</a></li>
1856+
</ul>
18521857
<pre class="highlight"><code class="language-bash"># Deploying the speech-to-text CosyVoice model on macOS requires additional dependencies.
1853-
brew install openfst
1854-
CPLUS_INCLUDE_PATH=$(brew --prefix openfst)/include
1855-
LIBRARY_PATH=$(brew --prefix openfst)/lib
1858+
./save_macos_dependencies.sh</code></pre>
1859+
<p>After running the script, will generate two files in the current directory:</p>
1860+
<ul>
1861+
<li><code>local-openfst-1.8.3.tar.gz</code></li>
1862+
<li><code>c9d6de4616377b76b6c6c71920a0b24f1b19aeed734fe12dbd2a169d0893b541--openfst-1.8.3.tar.gz</code></li>
1863+
</ul>
1864+
<pre class="highlight"><code class="language-bash">export AUDIO_DEPENDENCY_PACKAGE_SPEC="wetextprocessing==1.0.4.1"
1865+
export CPLUS_INCLUDE_PATH=$(brew --prefix [email protected])/include
1866+
export LIBRARY_PATH=$(brew --prefix [email protected])/lib
18561867

1857-
AUDIO_DEPENDENCY_PACKAGE_SPEC="wetextprocessing"
18581868
pip wheel $AUDIO_DEPENDENCY_PACKAGE_SPEC -w gpustack_audio_dependency_offline_packages
18591869
mv gpustack_audio_dependency_offline_packages/* gpustack_offline_packages/ &amp;&amp; rm -rf gpustack_audio_dependency_offline_packages</code></pre>
18601870
<div class="admonition note">
@@ -1875,8 +1885,15 @@ <h3 id="step-3-install-gpustack">Step 3: Install GPUStack</h3>
18751885
# Load and apply the pre-downloaded tools archive
18761886
gpustack download-tools --load-archive gpustack_offline_tools.tar.gz</code></pre>
18771887
<p>Optional: Additional Dependencies for macOS.</p>
1888+
<p>Transfer the following files from the online environment to the air-gapped environment.</p>
1889+
<ul>
1890+
<li><code>load_macos_dependencies.sh</code> file.</li>
1891+
<li><code>local-openfst-1.8.3.tar.gz</code> file.</li>
1892+
<li><code>c9d6de4616377b76b6c6c71920a0b24f1b19aeed734fe12dbd2a169d0893b541--openfst-1.8.3.tar.gz</code> file.</li>
1893+
</ul>
18781894
<pre class="highlight"><code class="language-bash"># Install the additional dependencies for speech-to-text CosyVoice model on macOS.
1879-
brew install openfst
1895+
# load-dir is the directory include local-openfst-1.8.3.tar.gz and c9d6de4616377b76b6c6c71920a0b24f1b19aeed734fe12dbd2a169d0893b541--openfst-1.8.3.tar.gz
1896+
./load_macos_dependencies.sh --load-dir ./
18801897

18811898
pip install --no-index --find-links=gpustack_offline_packages wetextprocessing</code></pre>
18821899
<p>Now you can run GPUStack by following the instructions in the <a href="../manual-installation/#run-gpustack">Manual Installation</a> guide.</p>

0.5/search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)