GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Здесь обсуждаются темы, косвенно связанные с Far.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by John Doe »

В этой теме обсуждаются консольные утилиты, портированные из *nix.
  • Cygwin — a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows
  • MinGW, a contraction of "Minimalist GNU for Windows", is a minimalist development environment for native Microsoft Windows applications.
    MSYS is a collection of GNU utilities such as bash, make, gawk and grep to allow building of applications and programs which depend on traditionally UNIX tools to be present. It is intended to supplement MinGW and the deficiencies of the cmd shell.
    (см. MSYS, msys2, msysgit, MinGW-MSYS Bundle, MinGW-w64, MinGW-builds, devshellbuilds)
  • Moluccas is Open Source Software distro for Windows
  • ezwinports — MS-Windows ports of Unix and GNU software
  • The GnuWin project provides Win32-versions of GNU tools, or tools with a similar open source licence.(последнее обновление в 2010)
  • Gow (Gnu On Windows) — The lightweight alternative to Cygwin
  • UnxUtils — some ports of common GNU utilities to native Win32. Скачать: 1, 2 (последнее обновление в 2003)
  • busybox — a single binary that contains many common Unix tools
  • coreutils — uutils is an attempt at writing universal (as in cross-platform) CLI utilities in Rust
  • Отдельные утилиты:
Cygwin и MSYS предоставляют функциональность POSIX API, через специальные библиотеку совместимости.
Входящие в комплект утилиты и библиотеки тесно связаны, и даже если из всего набора нужна лишь одна утилита - вытащить её может быть непросто, т.к. она потянет за собой множество зависимостей.

Все остальные пакеты (кроме Cygwin и MSYS) представляют собой нативные windows приложения, не требующие библиотек совместимости.
  • Утилиты пакетов GnuWin и ezwinports тоже могут иметь ряд зависимостей, но все необходимые dll присутствуют в дистрибутиве каждой утилиты.
  • GnuWin давно не обновлялся, поэтому составляющие его утилиты не последних версий.
  • Gow представляет собой некий "репак" из GnuWin и msys, соответственно и тут версии утилит не самые новые.
  • Утилиты пакета UnxUtils в основном слинкованы статически (не требуют внешних dll), а значит обращаться с ними проще всего. Но пакет не обновлялся с 2003 года.
  • busybox.exe представляет собой один исполняемый файл, содержащий множество утилит, с несколько ограниченной функциональностью (если сравнивать с полными версиями), но это компенсируется мизерным размером. Для удобства использования можно для каждого входящего в состав апплета создать одноимённый симлинк.
Дополнительная информация Родственные темы:
[list][]CMD. Командные файлы
[*]Список консольных программ и утилит
[*]Консольные конвертеры текстовых документов[/list]
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Re: gnuwin32

Post by HaRT »

darkmist wrote:Я так понимаю, многие пользуются сабжевой коллекцией утилит. Я поставил getgnuwin32, выкачал пакеты, распаковал их. Все бы хорошо, но вывод команд (например, у gawk.exe --help) выдается локализованный, причем в cp1251. установка в консоли chcp 1251 не помогает - вывод все равно идет крякозябрами. Конечно, установка LANG=EN спасает, однако хотелось бы узнать можно ли как-нибудь заставить gnuwin32 c cp866 и локализованным выводом?
А принципиально требуются именно gnuwin32? Я, например, давно использую для этих целей UnxUtils и почти полностью доволен (“почти”, т.к. некоторые утилиты всё же не работают или работают в недостаточной степени).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: gnuwin32

Post by t-rex »

Помню уже как то обсуждалось это, непомню тока если тут или в рассылке какойто.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: gnuwin32

Post by DrKnS »

t-rex wrote:Помню уже как то обсуждалось это, непомню тока если тут или в рассылке какойто.
Тут.
User avatar
sicvolo
Posts: 126
Joined: Tue 05 Feb, 2008 01:47
Been thanked: 1 time

Re: gnuwin32

Post by sicvolo »

Где?
Кстати я кроме cygwin ничего уже не признаю. Самое полезное в нем - это их setup с обновлением софта.
ФАРева
darkmist
Posts: 124
Joined: Wed 08 Aug, 2007 19:44

Re: Консольные конвертеры текстовых документов.

Post by darkmist »

John Doe wrote: Кстати, насчёт http://unxutils.sourceforge.net: на сайте присутствуют ссылки на обновления некоторых утилит. Но ссылки битые, видимо файлы поудалялись при очередной реорганизации sourceforge.net.
Лично у меня обновления сохранились.

Можно взять тут: http://filekeeper.org/download/far/unxutils
Скажите, а чем http://unixutils.sf.net существенно лучше, нежели http://gnuwin32.sf.net? А то последний существенно более актуальный.
Last edited by HaRT on Tue 08 Jun, 2010 11:53, edited 1 time in total.
Reason: Добавлена ссылка на исходную тему
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by John Doe »

Утилиты из UnxUtils более "портабельны", т.к. не имеют зависимостей от libiconv, libintl, pcre, regex, zlib и т.д.
(Уже упоминалось в теме CMD. Командные файлы)

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

Update
Есть зеркала UnxUtils: [1], [2]
Там сохранился и файл UnxUpdates.zip
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by siberia-man »

Можно упомянуть следующие пакеты, позволяющие запускать родные для linux утилиты в среде windows
coLinux - из существенных минусов: работает ТОЛЬКО 32-битная версия и ТОЛЬКО на 32-битной системе.
flinux - 32-система, но может работать и на 64-битной системе. Я так и не смог установить JDK из родных пакетов (с помощью менеджера пакетов pacman). Работает в своей песочнице и не имеет прямого доступа к оставщейся части файловой системы, но можно настроить с помощью символических ссылок.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by John Doe »

coreutils — uutils is an attempt at writing universal (as in cross-platform) CLI utilities in Rust
https://t.me/FarManager — Telegram чат
gene.pavlovsky
Posts: 170
Joined: Tue 16 Feb, 2010 17:55
Location: Luxembourg
Has thanked: 11 times
Been thanked: 9 times
Contact:

GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by gene.pavlovsky »

Есть ещё Git for Windows (GfW), который включает в себя уже упомянутый выше MSYS2 с bash и набором основных утилит.

Лично я уже лет 15 пользуюсь Cygwin-ом, в нём наиболее полный набор пакетов и наиболее близко к оригиналу.
Единственный гемор, когда приходится интегрировать разные программы из Cygwin вместе с программами под Windows, зачастую возникают проблемы из-за разного формата путей.
У Windows C:\a\b\c, а в Cygwin это выглядит как /cygdrive/c/a/b/c. Приходится писать всякие wrapper скрипты, конвертирующие пути туда или обратно (для этой цели Cygwin предоставляет команду cygpath с опцией -w или без).
Примеры: чтобы использовать Cygwin git совместно с Visual Studio Code, приходится юзать такой wrapper: https://github.com/nukata/cyg-git
Для большинства конверсий я использую написанный мною скрипт (+пример использования).

Любителям UNIX утилит, я полагаю, может быть интересна моя тема Подружить Far и bash (Cygwin и другие).
С помощью небольшой написанной мной прослойки, а также доступных в настройках Far опций, можно настроить выполнение команд с комстроки Far через bash.
Last edited by gene.pavlovsky on Sat 04 Nov, 2023 22:10, edited 5 times in total.
dmitrik
Posts: 124
Joined: Mon 30 Nov, 2009 21:58
Has thanked: 1 time
Been thanked: 4 times

GnuWin32, MSYS, UnxUtils, Cygwin и пр.

Post by dmitrik »

Задача иметь возможность установить именно портированные под Windows утилиты или просто получить возможность использовать GNU-утилиты под Windows? Потому что если второе, то сейчас есть WSL. Соотвественно, нужно установить любой из поддерживаемых им дистрибутивов Linux (у меня, например, Ubuntu) и вызывать их в командной строке через префикс wsl.

Например:

Code: Select all

git log | wsl grep -i text
git здесь — это упомянутый выше Git for Windows, к WSL отношения не имеет.

Таким же образом можно воспользоваться любой GNU-утилитой без необходимости искать ее Win32 API-аналог.
Last edited by dmitrik on Sun 05 Nov, 2023 00:08, edited 1 time in total.
Post Reply

Return to “Операционные системы, командные оболочки и прочее”