我正在尝试下载ngx_pagespeed模块,这样我就可以用它从源代码编译Nginx。
我用的是Ubuntu 16.04
我正在使用来自source的说明
因此,我需要首先安装Ubuntu依赖项,而不是诡计多端。
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip uuid-dev安装依赖项之后,您将转到“构建说明”部分。这就是我被彻底抛弃的地方。这是我无法破解的密码。
NPS_VERSION=1.12.34.2-stable
cd
wget
https://github.com/pagespeed/ngx_pagespeed/archive/v${NPS_VERSION}.zip
unzip v${NPS_VERSION}.zip
cd ngx_pagespeed-${NPS_VERSION}/
NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}
NPS_RELEASE_NUMBER=${NPS_VERSION/stable/}
psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz
[ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
wget ${psol_url}
tar -xzvf $(basename ${psol_url}) # extracts to psol/第一个问题--这两句话在我看来似乎不一致。
NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}
NPS_RELEASE_NUMBER=${NPS_VERSION/stable/}我不是巴什专家,但第二行不是否定第一句吗?为什么要包括这两行,特别是当第一行指定“NPS_VERSION=1.12.34.2-稳定”时?
第二个问题,如果我停止在"NPS_RELEASE_NUMBER=${NPS_VERSION/beta/}“上运行行,然后运行
echo "$NPS_RELEASE_NUMBER"它返回“1.12.34.2-稳定”
好吧,奇怪。它似乎只是在呼应变量"NPS_VERSION",完全忽略了变量"NPS_RELEASE_NUMBER“中附加到"NPS_VERSION”的部分字符串"/beta/“。
所以我设置了“NPS_RELEASE_NUMBER=${NPS_VERSION/稳定器/}”
再次回显变量,但这次它返回"1.12.34.2-“。说真的这是怎么回事?
编辑:我开始认为文档出现了严重的问题。我以为只有我自己,但是变量"NPS_RELEASE_NUMBER“正在返回如此奇怪的结果这一事实使我相信这里发生了其他事情。
发布于 2017-11-12 05:50:27
我不是巴什专家,但第二行不是否定第一句吗?
是的,第一行将是多余的。
再次回显变量,但这次它返回"1.12.34.2-“。说真的这是怎么回事?
这是巴什的口吃。Construction ${VAR/substring/to replace}只是在$VAR中将substring替换为to replace。所以,您刚刚剥离了“稳定”字符串,这种行为是正确的。
我开始认为文档出现了严重的问题。我以为只有我自己,但是变量"NPS_RELEASE_NUMBER“正在返回如此奇怪的结果这一事实使我相信这里发生了其他事情。
看上去这个剧本设计得太过火了。忽略它。只需下载/解压缩nginx和您的模块的源代码,然后在nginx目录中做:
./configure --add-module=/some/path/to/ngx_pagespeed-${NPS_VERSION} (any extra flags of nginx here)
make
sudo make install就这些了。请注意,最后一条命令将在您的系统中安装新的nginx,并且在没有包管理器的情况下完成此安装。如果您的确实需要,请删除以前安装的任何版本的nginx。
https://stackoverflow.com/questions/47243973
复制相似问题