update setup_cups.sh.

修复惠普插件安装

Signed-off-by: yuyx <237899745@qq.com>
This commit is contained in:
2025-12-03 15:59:22 +00:00
committed by Gitee
parent 5697bea880
commit 0a86ffcb4f

View File

@@ -737,8 +737,10 @@ install_pantum_driver() {
rm -rf "$tmp_dir" rm -rf "$tmp_dir"
} }
# 显示 HPLIP 插件安装提示 # 安装 HPLIP 插件(自动下载)
show_hplip_plugin_notice() { install_hplip_plugin() {
info "正在安装 HP 打印机插件..."
# 检测 hplip 版本 # 检测 hplip 版本
local hplip_version="" local hplip_version=""
if command -v hp-info > /dev/null 2>&1; then if command -v hp-info > /dev/null 2>&1; then
@@ -751,28 +753,89 @@ show_hplip_plugin_notice() {
fi fi
if [ -z "$hplip_version" ]; then if [ -z "$hplip_version" ]; then
warn "无法检测 HPLIP 版本" warn "无法检测 HPLIP 版本,跳过插件安装"
return return 1
fi fi
info "检测到 HPLIP 版本: ${hplip_version}"
# 插件文件路径
local plugin_file="/tmp/hplip-${hplip_version}-plugin.run"
local plugin_url="http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-${hplip_version}-plugin.run"
# 下载插件
info "下载 HP 插件: ${plugin_url}"
if wget -q --show-progress -O "$plugin_file" "$plugin_url" 2>/dev/null; then
success "插件下载完成"
else
warn "插件下载失败,尝试备用地址..."
# 备用地址
plugin_url="https://developers.hp.com/sites/default/files/hplip-${hplip_version}-plugin.run"
if wget -q --show-progress -O "$plugin_file" "$plugin_url" 2>/dev/null; then
success "插件下载完成(备用地址)"
else
warn "插件下载失败"
echo "" echo ""
echo -e "${YELLOW}╔══════════════════════════════════════════════════════════════════╗${NC}" echo -e "${YELLOW}请手动下载安装 HP 插件:${NC}"
echo -e "${YELLOW} ${RED}重要提示HP 打印机需要安装专有插件才能正常工作!${NC} ${YELLOW}${NC}" echo -e " 下载: ${GREEN}http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-${hplip_version}-plugin.run${NC}"
echo -e "${YELLOW}╠══════════════════════════════════════════════════════════════════╣${NC}" echo -e " 安装: ${GREEN}hp-plugin -i -p /tmp/hplip-${hplip_version}-plugin.run${NC}"
echo -e "${YELLOW}${NC} 检测到 HPLIP 版本: ${GREEN}${hplip_version}${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${BLUE}请手动下载并安装对应版本的插件:${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} 1. 下载地址: ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${GREEN}https://sourceforge.net/projects/hplip/files/${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${GREEN}hplip/${hplip_version}/hplip-${hplip_version}-plugin.run${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} 2. 上传到服务器后执行: ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${GREEN}sudo hp-plugin -i -p /tmp/hplip-${hplip_version}-plugin.run${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} ${YELLOW}${NC}"
echo -e "${YELLOW}${NC} 3. 安装过程中如提示 GPG 验证失败,输入 ${GREEN}y${NC} 继续即可 ${YELLOW}${NC}"
echo -e "${YELLOW}╚══════════════════════════════════════════════════════════════════╝${NC}"
echo "" echo ""
return 1
fi
fi
# 安装插件(使用 expect 或直接执行)
info "安装 HP 插件..."
if command -v expect > /dev/null 2>&1; then
# 使用 expect 自动应答
expect << EOF
spawn sh "$plugin_file" --nox11
expect {
"Do you accept" { send "y\r"; exp_continue }
"Enter a directory path" { send "/usr/share/hplip/data/plugins\r"; exp_continue }
eof
}
EOF
else
# 直接执行插件安装脚本
chmod +x "$plugin_file"
sh "$plugin_file" --nox11 --keep --noexec --target /tmp/hplip-plugin-extract || true
if [ -d /tmp/hplip-plugin-extract ]; then
# 复制插件文件
mkdir -p /usr/share/hplip/data/plugins
cp -f /tmp/hplip-plugin-extract/*.so /usr/share/hplip/data/plugins/ 2>/dev/null || true
cp -f /tmp/hplip-plugin-extract/plugin.spec /usr/share/hplip/data/plugins/ 2>/dev/null || true
# 设置权限
chmod 644 /usr/share/hplip/data/plugins/*.so 2>/dev/null || true
chmod 644 /usr/share/hplip/data/plugins/plugin.spec 2>/dev/null || true
# 创建版本标记
echo "[plugin]" > /var/lib/hp/hplip.state
echo "installed = 1" >> /var/lib/hp/hplip.state
echo "version = ${hplip_version}" >> /var/lib/hp/hplip.state
mkdir -p /var/lib/hp
rm -rf /tmp/hplip-plugin-extract
success "HP 插件安装完成"
else
# 尝试使用 hp-plugin 命令
warn "尝试使用 hp-plugin 安装..."
echo -e "\n${YELLOW}请在下面的提示中输入 y 接受许可协议${NC}\n"
hp-plugin -i -p "$plugin_file" || {
warn "自动安装失败"
echo ""
echo -e "${YELLOW}请手动安装 HP 插件:${NC}"
echo -e " ${GREEN}hp-plugin -i -p ${plugin_file}${NC}"
echo -e " 提示 GPG 验证失败时输入 ${GREEN}y${NC} 继续"
echo ""
}
fi
fi
# 清理
rm -f "$plugin_file" 2>/dev/null || true
# 保存版本号供后续使用 # 保存版本号供后续使用
HPLIP_VERSION="$hplip_version" HPLIP_VERSION="$hplip_version"
@@ -837,9 +900,9 @@ install_drivers() {
install_pdf_printer install_pdf_printer
fi fi
# 显示 HP 插件安装提示 # 安装 HP 插件
if [ "$install_hp" = true ]; then if [ "$install_hp" = true ]; then
show_hplip_plugin_notice install_hplip_plugin
fi fi
} }
@@ -1023,8 +1086,11 @@ EOF
install_pdf_printer() { install_pdf_printer() {
info "安装虚拟 PDF 打印机..." info "安装虚拟 PDF 打印机..."
# 安装 cups-pdf 包 # 安装 cups-pdf 包Debian 13+ 包名改为 printer-driver-cups-pdf
apt install -y cups-pdf apt install -y printer-driver-cups-pdf 2>/dev/null || apt install -y cups-pdf 2>/dev/null || {
warn "cups-pdf 包不可用,跳过虚拟 PDF 打印机安装"
return 0
}
# 等待 CUPS 服务就绪 # 等待 CUPS 服务就绪
sleep 2 sleep 2