題 通過Cygwin命令行升級和安裝軟件包?


我是一個使用Cygwin的盲人計算機用戶。

安裝程序不是很容易訪問:升級,安裝和刪除特定軟件包非常困難,因為您必須使用模擬鼠標鍵擊來單擊和滾動。

有沒有辦法手動安裝/升級包或通過命令行安裝/升級它們?


110
2017-09-13 15:48


起源




答案:


安裝 的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

121
2017-09-14 17:29



存儲庫沒有 移動 :DMCA投訴已經發生 發行 反轉碼 - 開放/ apt-cyg。順便說一句,Github用戶svnpenn同時創建了一個名為“sage”的分支,聲稱是其繼承者 - Lucas Cimon
更新了DMCA counternotice的鏈接 ... svnpenn / sage fork - Abdull
我不得不chmod + x apt-cyg它是可執行的(以防它有助於某人) - Pedro A


有些人正確地說過 apt-cyg 本身需要wget並且為了獲得 apt-cyg 你需要wget,有一個bash唯一的解決方案來引導 wget 在純粹的bash中。

在你的薄薄的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

23
2017-10-30 21:58



對不起,@ moreaki,但有一件事我無法理解apt-cyg:在經典的CygWin Windows安裝程序中我可能/必須指定存儲庫/包位置,無論是(很多)ftp / http下載之一站點或本地驅動器(在我的計算機中)。我沒有在官方googlecode網站上看到這樣的選項。哪裡 apt-cyg 從下載包? - Sopalajo de Arrierez
原諒我遲到的回复。我剛剛在官方googlecode網站上瀏覽了apt-cyg的代碼,對我來說,看起來所選的下載網站似乎是 http://mirrors.kernel.org/sourceware/cygwin,如 findworkspace(),當您未使用命令行選項指定鏡像時 -m。如果指定命令行,則將寫入鏡像服務器信息 /etc/setup/last-mirror。 - Moreaki
apt-cyg安裝不再依賴於wget,所以這些都不再重要嗎?他們在他們的網站上使用lynx(似乎內置於cygwin?)。 - akauppi
@steven批發編輯的原因是什麼?這本身就是一個單獨的答案 - random♦
@steven然後,這將是一個新的答案,以展示,而不是簡單地改變現有的答案與原作者的意圖和聲音 - random♦


官方apt-cyg安裝 方法是:

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

兩步好於三步。然後:

apt-cyg install nano

順便說一下,為了使它工作,你需要安裝 wget的柏油呆子bzip2的 為了使用apt-cyg。除了wget,其他人一起來 默認Cygwin安裝。


21
2018-02-24 15:47



對於64位Cygwin, svn 和 apt-cyg 可能會被打破。所以你可能不得不使用 three step wget安裝方法 apt-cyg 然後更換 $mirror/setup... 同 $mirror/x86_64/setup... 在apt-cyg文件的第98和105行。 - sagunms


老問題,但對於谷歌和其他人來到這裡: 官方設置有命令行參數 這允許我準備簡單的* .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 (64bit)進入同一目錄。 現在你需要做的就是安裝包:

install-pkg packagename

積極的:官方設置,應始終有效,適用於任何包裝。 否定:當前(2015年6月)官方設置需要管理員權限,即使它實際上不需要管理員權限(例如係統文件夾外的根目錄)。


17
2018-06-23 10:23



很好的答案,因為它是你在任何Cygwin安裝中已經擁有的工具;但是,您似乎無法阻止它更新所有已安裝的軟件包?如果你只是想安裝一個新包,這很煩人;換句話說,沒有命令行等效於圖形setup.exe的“Keep”選項 - golimar
注意setup.exe現在稱為setup-x86.exe - 或者取決於cpu位的變體。 - ErichBSchulz
鏈接壞了,現在是: cygwin.com/faq/faq.html#faq.setup.cli 你能在答案中編輯嗎?謝謝 - Benj


Cygwin的setup.exe,至少在1.7“beta”版本中,內置了“無人值守”模式。將setup.exe快捷方式拖放到命令窗口(或以其他方式準備使用開關運行它),然後添加 -q 對於無人值守模式,然後是 -P 和逗號分隔的包名稱。所以,對我來說,這個安裝了lynx:

$ "C:\Documents and Settings\martind\Desktop\setup-1.7.exe" -q -P lynx

13
2017-11-11 17:57



嘿,它的工作原理,但如果我想在安裝時添加一些包,怎麼辦? - Johnydep
注意setup.exe現在稱為setup-x86.exe - 或者取決於cpu位的變體。 - ErichBSchulz


setup-x86 -nq -s http://box-soft.com -P curl,git,make

要么

setup-x86 -nq -s http://box-soft.com -P curl -P git -P make

這將安裝cURL,git和make,在安靜模式下沒有快捷方式。


6
2018-04-26 05:45





我為cygwin找到了兩個'apt like'包管理器。一個是名為cyg-apt的python腳本,您可以從中下載 http://www.lilypond.org/~janneke/software/cyg-apt 另一個是你可以找到的apt-cyg http://code.google.com/p/apt-cyg/


2
2017-09-13 18:20





雞有<=>雞蛋問題 接受的答案。如果你沒有得到 wget 要么 lynx 在初始安裝期間,您無法使用 apt-cyg。這是我安裝的方式 wget 所以我可以使用 apt-cyg。 (它用的是 cygwin setup exe的CLI功能。)

# check to see if you are running 64 bit cygwin
$ uname -a
CYGWIN_NT-10.0 WINDOWS-ABMESEI 2.6.0(0.304/5/3) 2016-08-31 14:32 x86_64 Cygwin

# if you are not using 64 bit, get http://www.cygwin.com/setup-x86.exe instead of...
$ curl -o cygwin-setup.exe http://www.cygwin.com/setup-x86_64.exe
$ chmod +x cygwin-setup.exe

# now you are ready to use it according to: https://cygwin.com/faq/faq.html#faq.setup.cli
$ cygwin-setup.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode --packages wget

0
2018-03-30 03:33





至少對於不需要安裝後配置的軟件包,我只是從cygwin root'/'中解壓縮它們。我需要一個舊版本的subversion(1.7.14),它超越了setup處理的兩個版本。

另一個優點是軟件包在cygwin軟件包管理世界之外,因此如果保留默認值,則不會使用最新軟件包自動更新某種特殊黑名單。


-1
2017-09-08 16:17