118
setup_cups.sh
118
setup_cups.sh
@@ -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
|
||||||
|
|
||||||
echo ""
|
info "检测到 HPLIP 版本: ${hplip_version}"
|
||||||
echo -e "${YELLOW}╔══════════════════════════════════════════════════════════════════╗${NC}"
|
|
||||||
echo -e "${YELLOW}║ ${RED}重要提示:HP 打印机需要安装专有插件才能正常工作!${NC} ${YELLOW}║${NC}"
|
# 插件文件路径
|
||||||
echo -e "${YELLOW}╠══════════════════════════════════════════════════════════════════╣${NC}"
|
local plugin_file="/tmp/hplip-${hplip_version}-plugin.run"
|
||||||
echo -e "${YELLOW}║${NC} 检测到 HPLIP 版本: ${GREEN}${hplip_version}${NC} ${YELLOW}║${NC}"
|
local plugin_url="http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-${hplip_version}-plugin.run"
|
||||||
echo -e "${YELLOW}║${NC} ${YELLOW}║${NC}"
|
|
||||||
echo -e "${YELLOW}║${NC} ${BLUE}请手动下载并安装对应版本的插件:${NC} ${YELLOW}║${NC}"
|
# 下载插件
|
||||||
echo -e "${YELLOW}║${NC} ${YELLOW}║${NC}"
|
info "下载 HP 插件: ${plugin_url}"
|
||||||
echo -e "${YELLOW}║${NC} 1. 下载地址: ${YELLOW}║${NC}"
|
if wget -q --show-progress -O "$plugin_file" "$plugin_url" 2>/dev/null; then
|
||||||
echo -e "${YELLOW}║${NC} ${GREEN}https://sourceforge.net/projects/hplip/files/${NC} ${YELLOW}║${NC}"
|
success "插件下载完成"
|
||||||
echo -e "${YELLOW}║${NC} ${GREEN}hplip/${hplip_version}/hplip-${hplip_version}-plugin.run${NC} ${YELLOW}║${NC}"
|
else
|
||||||
echo -e "${YELLOW}║${NC} ${YELLOW}║${NC}"
|
warn "插件下载失败,尝试备用地址..."
|
||||||
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}"
|
plugin_url="https://developers.hp.com/sites/default/files/hplip-${hplip_version}-plugin.run"
|
||||||
echo -e "${YELLOW}║${NC} ${YELLOW}║${NC}"
|
if wget -q --show-progress -O "$plugin_file" "$plugin_url" 2>/dev/null; then
|
||||||
echo -e "${YELLOW}║${NC} 3. 安装过程中如提示 GPG 验证失败,输入 ${GREEN}y${NC} 继续即可 ${YELLOW}║${NC}"
|
success "插件下载完成(备用地址)"
|
||||||
echo -e "${YELLOW}╚══════════════════════════════════════════════════════════════════╝${NC}"
|
else
|
||||||
echo ""
|
warn "插件下载失败"
|
||||||
|
echo ""
|
||||||
|
echo -e "${YELLOW}请手动下载安装 HP 插件:${NC}"
|
||||||
|
echo -e " 下载: ${GREEN}http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/hplip-${hplip_version}-plugin.run${NC}"
|
||||||
|
echo -e " 安装: ${GREEN}hp-plugin -i -p /tmp/hplip-${hplip_version}-plugin.run${NC}"
|
||||||
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user