111

Я слепой пользователь компьютера, который использует Cygwin.

Программа установки не очень доступна: обновление, установка и удаление определенных пакетов сделать довольно сложно, поскольку для нажатия и прокрутки приходится использовать симулированные нажатия клавиш мыши.

Есть ли способ вручную установить / обновить пакеты или установить / обновить их через командную строку?

9 ответов9

121

Установите 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
23

Так как некоторые люди правильно заявили, что apt-cyg сам по себе нужен wget, а для получения apt-cyg вам нужен wget, существует решение только для bash, чтобы загрузить wget в чистом виде.

Создайте такую функцию в вашей оболочке mint:

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
21

Официальный метод установки apt-cyg :

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

Два шага лучше, чем три. Затем:

apt-cyg install nano

Кстати, чтобы это работало, вам нужно установить wget, tar, gawk и bzip2, чтобы использовать apt-cyg. Помимо wget, остальные поставляются с установкой Cygwin по умолчанию.

17

Старый вопрос, но для других, которые Google и попал сюда: Официальная установка имеет аргументы командной строки, которые позволили мне подготовить простой * .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) официальная установка требует прав администратора, даже если они на самом деле не нужны (например, корневой каталог вне системных папок).

13

Setup.exe Cygwin, по крайней мере, в версии 1.7 "бета", имеет встроенный режим "без присмотра". Перетащите ярлык setup.exe в командное окно (или иным образом подготовьтесь к его запуску с переключателями) и добавьте -q для автоматического режима, а затем -P и имена пакетов, разделенные запятыми. Итак, для меня это установленная рысь:

$ "C:\Documents and Settings\martind\Desktop\setup-1.7.exe" -q -P lynx
7
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 без ярлыков в тихом режиме.

2

Я нашел два «подходящих» менеджера пакетов для cygwin. Один из них представляет собой скрипт на python, называемый cyg-apt, который вы можете загрузить с http://www.lilypond.org/~janneke/software/cyg-apt, а другой - apt-cyg, который вы можете найти по адресу http://code. google.com/p/apt-cyg/

0

Существует проблема куриного яйца с принятым ответом. Если вы не получили wget или lynx во время первоначальной установки, вы не можете использовать apt-cyg . Вот как я установил wget чтобы я мог использовать apt-cyg . (Он использует функции интерфейса командной строки cygwin exe.)

# 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
-1

По крайней мере, для пакетов, которые не требуют настройки после установки, я просто удалил их из корня cygwin '/'. Мне потребовалась более старая версия Subversion (1.7.14), которая вышла за рамки двух версий, обрабатываемых программой установки.

Дополнительным преимуществом является то, что пакет выходит за пределы мира управления пакетами cygwin и, таким образом, в своего рода специальном черном списке автоматически не обновляется новейшим пакетом, если сохраняются значения по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .