银河麒麟系统.sh安装包无法安装,根本原因是缺少执行权限、安全策略拦截、路径解析失败或依赖缺失;须先chmod +x赋权,再用sudo ./script.sh或bash script.sh执行,并在脚本首行添加cd "$(cd "$(dirname "$0")" && pwd)"切换路径。

银河麒麟系统下载了.sh后缀的安装包却无法安装,常见表现是双击无反应、终端报错“Permission denied”或提示“command not found”,根本原因在于Linux默认不赋予新文件执行权限、安全策略拦截图形界面调用、脚本路径解析失败或依赖缺失。
先确认脚本是否具备执行权限
Linux系统不会自动给下载文件加执行位,这是内核级安全机制,不是麒麟特有,但必须手动补上。
打开终端,用cd命令进入.sh文件所在目录,例如:cd /home/yourname/Downloads
运行ls -l yourscript.sh查看权限,若最左侧显示-rw-r--r--(没有x),说明确实没权限。
【必须执行这一步】输入chmod +x yourscript.sh赋予可执行权限。
再运行ls -l yourscript.sh确认输出中出现-rwxr-xr-x字样,x出现在所有三组权限位中才算成功。
绕过图形界面限制,强制用bash解释器运行
银河麒麟V10默认启用应用来源检查,Peony文件管理器会直接屏蔽.sh双击行为,这不是bug,是主动防御策略。
方法一:直接调用bash解释器(不依赖执行权限)
在终端中输入:bash yourscript.sh
方法二:用sh兼容模式运行(部分老脚本要求)
输入:sh yourscript.sh
方法三:若脚本含中文路径或空格,先将文件复制到/tmp或/opt等纯英文路径下再执行,避免路径解析崩溃。
以root权限运行安装类脚本
绝大多数.sh安装包要写入/usr、/lib或加载内核模块,普通用户权限必然失败,错误提示常为“Operation not permitted”或“Permission denied on /dev”。
第一步:确保已赋权(见第一部分),否则sudo也无效。
第二步:在终端中执行:sudo ./yourscript.sh
第三步:输入当前用户密码(输入时屏幕无任何字符显示,属正常现象,输完直接回车)。
第四步:若脚本启动后卡在“checking for …”或报“command not found”,说明缺依赖——此时不要强行退出,记下缺失命令名(如curl、unzip、gcc),新开终端窗口安装:sudo apt update && sudo apt install 缺失命令名,再重试。
解决U盘或NTFS/FAT32分区上的.sh无法执行问题
U盘常用FAT32/NTFS格式,这类文件系统不支持Linux权限位,chmod命令执行后看似成功,实则权限未真正写入,导致后续执行仍失败。
方法一:临时复制到本地磁盘再操作
把.sh文件拷贝到/home/yourname/或/tmp下,再按前述步骤赋权、运行。
方法二:挂载时启用权限支持(仅限NTFS)
先卸载U盘:sudo umount /dev/sdX1(X替换成实际字母)
再重新挂载并指定uid/gid:sudo mount -t ntfs-3g -o uid=1000,gid=1000,umask=022 /dev/sdX1 /mnt/usb
其中1000是你的用户ID,可用id -u命令查出。
方法三:彻底规避权限问题
直接用bash /run/media/yourname/USB_NAME/yourscript.sh,跳过执行位校验环节。
检查脚本头部和编码是否合规
有些.sh脚本从Windows环境生成,换行符为CRLF(\r\n),或编码为GBK,银河麒麟默认只认LF换行和UTF-8编码,会导致语法解析失败,报错位置常在第一行或“syntax error near unexpected token”。
用nano打开脚本:nano yourscript.sh
确认首行是#!/bin/bash或#!/bin/sh,不能有多余空格或BOM头。
若编辑器右下角显示“DOS”或“GBK”,按Ctrl+_(下划线)→选“Set File Format”→切到UNIX、编码选UTF-8→保存。
命令行快速修复(需安装dos2unix):sudo apt install dos2unix -y && dos2unix yourscript.sh

















