我是一位使用 Cygwin 的盲人计算机用户。
安装程序不太容易访问:升级、安装和删除特定软件包非常困难,因为您必须使用模拟鼠标按键来单击和滚动。
有没有办法手动安装/升级软件包或通过命令行安装/升级它们?
答案1
安装apt-cyg:
lynx -source https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin
之后,您将能够通过运行以下命令安装包含依赖项的包“lynx”:
apt-cyg install lynx
答案2
老问题了,但其他人通过谷歌搜索后得到了如下结果:官方设置有命令行参数这使我能够准备简单的 *.bat 脚本 - 只需在例如“install-pkg.bat”中放入以下行,然后将该文件放入您的根目录(例如 C:\cygwin):
setup-x86.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode --root "%cd%" --packages %*
您需要下载并放置http://www.cygwin.com/setup-x86.exe(32位)或http://www.cygwin.com/setup-x86_64.exe(64 位)放入同一目录。现在您要做的就是安装包:
install-pkg packagename
优点:官方设置,对于任何软件包来说都应该有效。缺点:当前(2015 年 6 月)官方设置需要管理员权限,尽管实际上并不需要(例如系统文件夹之外的根目录)。
答案3
由于有些人正确地指出它apt-cyg
本身需要 wget,并且为了获得apt-cyg
需要 wget,因此有一个仅限 bash 的解决方案可以wget
在纯 bash 中引导。
在你的 mintty bash shell 中创建如下函数:
function __wget() {
: ${DEBUG:=0}
local URL=$1
local tag="Connection: close"
local mark=0
if [ -z "${URL}" ]; then
printf "Usage: %s \"URL\" [e.g.: %s http://www.google.com/]" \
"${FUNCNAME[0]}" "${FUNCNAME[0]}"
return 1;
fi
read proto server path <<<$(echo ${URL//// })
DOC=/${path// //}
HOST=${server//:*}
PORT=${server//*:}
[[ x"${HOST}" == x"${PORT}" ]] && PORT=80
[[ $DEBUG -eq 1 ]] && echo "HOST=$HOST"
[[ $DEBUG -eq 1 ]] && echo "PORT=$PORT"
[[ $DEBUG -eq 1 ]] && echo "DOC =$DOC"
exec 3<>/dev/tcp/${HOST}/$PORT
echo -en "GET ${DOC} HTTP/1.1\r\nHost: ${HOST}\r\n${tag}\r\n\r\n" >&3
while read line; do
[[ $mark -eq 1 ]] && echo $line
if [[ "${line}" =~ "${tag}" ]]; then
mark=1
fi
done <&3
exec 3>&-
}
现在你可以使用它几乎比如 wget:
__wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg > /usr/bin/apt-cyg && chmod 0755 /usr/bin/apt-cyg
答案4
Cygwin 的 setup.exe,至少在 1.7 “beta” 版本中,内置了“无人值守”模式。将您的 setup.exe 快捷方式拖放到命令窗口中(或者准备使用开关运行它),然后添加-q
无人值守模式,后跟-P
逗号分隔的包名称。因此,对我来说,这安装了 lynx:
$ "C:\Documents and Settings\martind\Desktop\setup-1.7.exe" -q -P lynx