Обновление и установка пакетов через командную строку Cygwin?
70036
Jared
Я слепой пользователь компьютера, который использует Cygwin.
Программа установки не очень доступна: обновление, установка и удаление определенных пакетов сделать довольно сложно, поскольку для нажатия и прокрутки приходится использовать симулированные нажатия клавиш мыши.
Есть ли способ вручную установить / обновить пакеты или установить / обновить их через командную строку?
После этого вы сможете установить, скажем, пакет «lynx», включая зависимости, запустив:
apt-cyg install lynx
Хранилище ** не перемещено **: жалоба DMCA была [выдана] (// github.com/github/dmca/blob/master/2016-01-27-apt-cyg-counternotice.md) снова перекодировать -open / кв-Лебедь. Кстати, пользователь Github svnpenn одновременно создал форк с именем «sage», утверждая, что является его преемником.
Lucas Cimon 8 лет назад
4
[Обновлена ссылка для контраргумента DMCA] (https://github.com/github/dmca/blob/ffd9865c2b143512aa7e6e2467ffcbe95accba69/2016-01-27-apt-cyg-counternotice.md) ... [svnpenn / sage fork] (https) : //github.com/svnpenn/sage)
Abdull 7 лет назад
2
Мне нужно было chmod + x apt-cyg, чтобы он был исполняемым (на всякий случай, если это кому-то поможет)
Pedro A 6 лет назад
0
23
Moreaki
Since some people correctly stated that apt-cyg itself needs wget and in order to get apt-cyg you need wget, there is a bash only solution to bootstrap wget in pure bash.
Create a function like this in your mintty bash shell:
function __wget() { : $ local URL=$1 local tag="Connection: close" local mark=0 if [ -z "$" ]; then printf "Usage: %s \"URL\" [e.g.: %s http://www.google.com/]" \ "$" "$" return 1; fi read proto server path <<<$(echo $) DOC=/$ HOST=$ PORT=$ [[ x"$" == x"$" ]] && PORT=80 [[ $DEBUG -eq 1 ]] && echo "HOST=$HOST" [[ $DEBUG -eq 1 ]] && echo "PORT=$PORT" [[ $DEBUG -eq 1 ]] && echo "DOC =$DOC" exec 3<>/dev/tcp/$/$PORT echo -en "GET $ HTTP/1.1\r\nHost: $\r\n$\r\n\r\n" >&3 while read line; do [[ $mark -eq 1 ]] && echo $line if [[ "$" =~ "$" ]]; then mark=1 fi done <&3 exec 3>&- }
Извините, @moreaki, но есть одна вещь, которую я не могу понять из apt-cyg: в классическом установщике Windows CygWin я могу / должен указать местоположение репозиториев / пакетов, будь то одна из (многих) загрузок ftp / http сайты или локальный диск (на моем компьютере). Я не вижу такой опции на официальном сайте GoogleCode. Откуда `apt-cyg` загружает пакеты?
Sopalajo de Arrierez 10 лет назад
0
Простите за мой поздний ответ. Я только что просмотрел код apt-cyg на официальном сайте googlecode, и мне кажется, что выбранный сайт загрузки выглядит как `http: // mirrors.kernel.org / sourceware / cygwin`, как указано в` findworkspace () `, когда вы не указали зеркало с помощью параметра командной строки` -m`. Если вы укажете командную строку, информация о зеркальном сервере будет записана в `/ etc / setup / last-mirror`.
Moreaki 10 лет назад
0
Установка apt-cyg больше не зависит от wget, так что, вероятно, все это уже не имеет значения? Они используют lynx (который, кажется, встроен в cygwin?) На своем веб-сайте.
akauppi 9 лет назад
0
@steven В чем причина оптового редактирования, которое меняется больше, чем существенная часть? Это в значительной степени отдельный ответ
random 9 лет назад
0
@steven Тогда это будет поводом для нового ответа, чтобы продемонстрировать это, а не для краткого изменения существующего ответа против намерения и голоса оригинального автора.
random 9 лет назад
0
Тогда понизьте и предоставьте конкурирующий ответ. Если вы являетесь сопровождающим apt-cyg, то в вашем профиле, в сводке по редактированию или в любом другом месте нет указаний, указывающих на то, какие полномочия или фоны следует использовать для обработки изменений такого рода.
random 9 лет назад
0
@ случайно ты должен @ упоминать меня, чтобы мне не приходилось проверять. Также я думаю, что это должно хорошо подойти http://github.com/transcode-open/apt-cyg/graphs/contributors
Steven Penny 9 лет назад
0
Кстати, чтобы это работало, вам нужно установить wget, tar, gawk и bzip2, чтобы использовать apt-cyg. Помимо wget, остальные поставляются с установкой Cygwin по умолчанию.
Для 64-битного Cygwin `svn` и` apt-cyg` могут быть повреждены. Поэтому вам, возможно, придется использовать подход «трехэтапного» wget для установки «apt-cyg», а затем заменить «$ mirror / setup ...» на «$ mirror / x86_64 / setup ...» в строках 98 и 105 файл apt-cyg.
sagunms 11 лет назад
2
17
peenut
Старый вопрос, но для других, которые Google и попал сюда: Официальная установка имеет аргументы командной строки, которые позволили мне подготовить простой * .bat скрипт - просто поместите следующую строку, например, в "install-pkg.bat" и поместите этот файл в свой корневой каталог. (например, C: \ cygwin):
Положительный: официальная настройка, должна работать всегда, для любой упаковки. Отрицательный: текущая (июнь / 2015) официальная установка требует прав администратора, даже если они на самом деле не нужны (например, корневой каталог вне системных папок).
хороший ответ, так как это инструмент, который у вас уже есть в любой установке Cygwin; однако кажется, что вы не можете помешать ему обновить все уже установленные пакеты? это довольно раздражает, если вы просто хотите установить один новый пакет; другими словами, нет командной строки, эквивалентной опции «Keep» в графическом файле setup.exe.
golimar 12 лет назад
1
note Примечание setup.exe теперь называется setup-x86.exe - или вариант в зависимости от битов процессора.
ErichBSchulz 10 лет назад
1
Ссылка не работает, теперь это: https://cygwin.com/faq/faq.html#faq.setup.cli Можете ли вы отредактировать это в своем ответе? Спасибо
Benj 9 лет назад
0
13
Martin Dorey
Setup.exe Cygwin, по крайней мере, в версии 1.7 «бета», имеет встроенный режим «без присмотра». Перетащите ярлык setup.exe в командное окно (или подготовьтесь к его запуску с помощью переключателей) и добавьте его -qв автоматический режим, за которым следуют -Pимена пакетов, разделенные запятыми. Итак, для меня это установленная рысь:
$ "C:\Documents and Settings\martind\Desktop\setup-1.7.exe" -q -P lynx
эй, это работает, но как насчет того, если я хочу добавить несколько пакетов во время установки, как это сделать?
Johnydep 12 лет назад
0
note Примечание setup.exe теперь называется setup-x86.exe - или вариант в зависимости от битов процессора.
ErichBSchulz 10 лет назад
1
Существует проблема куриного яйца с принятым ответом . Если вы не получили 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
Chris
For at least packages that do not require post-install configuration, I have simply untarred them from the cygwin root '/'. I required an older version of subversion (1.7.14) which had passed beyond the two versions handled by setup.
An additional advantage is the package becomes outside the cygwin package management world and thus in a kind of adhoc blacklist is not automatically updated with the newest package if defaults are kept.