web-dev-qa-db-ja.com

Cygwinのコマンドラインでパッケージをアップグレードしてインストールする

私はCygwinを使っている盲目のコンピュータユーザーです。

インストールプログラムにはあまりアクセスできません。特定のパッケージをアップグレード、インストール、削除するのは、マウスをクリックしてスクロールするのにシミュレートされたマウスキーストロークを使用する必要があるため、非常に困難です。

手動でパッケージをインストール/アップグレードする方法と、コマンドラインからインストール/アップグレードする方法はありますか?

113
Jared

インストール 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
knorv

apt-cyg自体がwgetを必要とし、apt-cygを取得するためにはwgetが必要であると一部の人々が正しく述べているので、純粋なbashでwgetをブートストラップするbashのみの解決策があります。

あなたのミントバッシュシェルでこのような関数を作成します。

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
Moreaki

公式apt-cygインストール メソッドは次のとおりです。

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

二歩は三よりも優れています。その後:

apt-cyg install nano

ところで、うまく動くようにするにはapt-cygを使うために wget tar gawk そして bzip2 をインストールする必要があります。 wgetとは別に、他のものはデフォルトのCygwinインストールを備えています。

21
Marc Climent

昔の質問ですが、グーグルでここに来た他の人たちのために: 公式のセットアップにはコマンドライン引数 があり、私は簡単な* .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月)の正式な設定では、実際には管理者権限が必要ない場合でも管理者権限が必要です(例:システムフォルダ外のルートディレクトリ)。

17
peenut

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
Martin Dorey
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をインストールするでしょう。クワイエットモードではショートカットはありません。

7
Steven Penny

Cygwin用の2つの 'apt like'パッケージマネージャを見つけました。 1つはcyg-aptというpythonスクリプトです。これは、 http://www.lilypond.org/~janneke/software/cyg-apt からダウンロードできます。もう一つはapt-cygで、これは http://code.google.com/p/apt-cyg/ にあります。

2
LunchMoney

とのチキン<=>卵問題があります - 受け入れられた答え - /。初回インストール時にwgetまたはlynxを取得できなかった場合は、apt-cygを使用できません。 apt-cygを使えるようにwgetをインストールする方法は次のとおりです。 (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
Bruno Bronosky