Cygwin: Difference between revisions

From wikinotes
No edit summary
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
Cygwin provides a unix-like environment to run processes under windows by emulating unix syscalls.<br>
Cygwin provides a unix-like environment to run processes under windows by translating unix syscalls.<br>
It has no CLI package manager, but the installer can be scripted to install packages.
It has no CLI package manager, but the installer can be scripted to install packages.


Line 8: Line 8:
|-
|-
| [[cygwin package management]]
| [[cygwin package management]]
|-
| [[cygwin configuration]]
|-
|-
| [[cygwin programs]]
| [[cygwin programs]]
Line 15: Line 17:
|}
|}
</blockquote><!-- Notes -->
</blockquote><!-- Notes -->
= Install =
<blockquote>
'''chocolatey installs cygwin to C:\programdata\chocolatey\cygwin\tools\cygwin'''
Cygwin is built to be able to be run in a portable way. You install, update, and get new packages by
re-running the cygwin installer.
Always install the 32 bit version of cygwin, unless you absolutely need it to be 64bit. It is much
more supported. Cygwin doesn't seem to require any registry keys to be set, the only things that
affect it's portability are some environment variables.
'''NOTE''' If you are using my package-setup script, always run it with a normal
cygwin http-repo as a source, reboot, then run with the private key for a cygports repo.
If you fail to do this, and run the cygports repo first, you may end up with corrupted packages.
</blockquote><!-- Install -->
= Package Management =
<blockquote>
{| class="wikitable"
!colspan=3| Best Sources
|-
| http://lug.mtu.edu || || standard cygwin packages
|-
| http://mirrors.kernel.org/sources.redhat.com/cygwinports/  || || precompiled cygports (https://sourceware.org/cygwinports/)
|}
<syntaxhighlight lang="bash">
## Start Cygwin with GPG key for cygports
/path/to/setup-x86.exe -K http://cygwinports.org/ports.gpg
</syntaxhighlight>
''' CYGPORTS CONTAINS DWM, MPD, NCMPC, PYSIDE '''<br>
Cygwin doesn't have a traditional package manager. There are a few terminal programs you
can use to emulate apt-get, but since on Windows files cannot be deleted or overwritten while they
are running it is best to quit cygwin, and install programs using the installer.
Because of cygwin's limited options in the default repo, I find myself compiling packages myself
quite a lot. I created a git repo for compiled (and attempts at compiling) programs for quick (manual)
installations on new machines.
There is also a system loosely based on Gentoo's portage to assist in compilation. It is called cygports,
and can be installed from the main package manager.
<br>
<br>
</blockquote><!-- Package Management -->
= Common Problems =
<blockquote>
== rebase ==
<blockquote>
Almost all issues related to cygwin can be resolved by rebasing. You can do it
the quick/dirty way:
<syntaxhighlight lang="bash">
C:/cygwin/bin/dash.exe
/bin/rebaseall
</syntaxhighlight>
Or the full proper way:
<syntaxhighlight lang="bash">
- Open Task Manager and close any processes that look to be Cygwin related.
- Open C:\Cygwin\bin in Windows Explorer
  - Verify that dash.exe, ash.exe, rebase.exe, and rebaseall exist in this folder
      - If any of them are missing, re-run Cygwin setup and select the dash, ash, and rebase packages
    - right-click your C:\Cygwin folder, uncheck Read-only (if its checked), and press OK.
      - When an error about not being able to switch some files comes up, select "Ignore All". Wait for this process to complete.
    - Browse to C:\Cygwin\bin in Windows Explorer
    - Right click dash.exe and click "Run as Administrator". A command Prompt should appear with nothing but a $
    - Type /usr/bin/rebaseall -v, hit enter, and wait for the process to complete.
        - If you get errors about Cygwin processes running, try Step 1 again. If that still doesn't work, Restart your computer into safe mode and try these steps again.
        - A commenter noted that, depending on your settings, you may have to type cd /usr/bin && ./rebaseall -v instead.
    - Try opening Cygwin again.
</syntaxhighlight>
{| class="wikinotes"
|-
| http://stackoverflow.com/questions/9300722/cygwin-error-bash-fork-retry-resource-temporarily-unavailable
|-
| http://cygwin.wikia.com/wiki/Rebaseall
|}
</blockquote><!-- rebaseall -->
</blockquote><!-- Common Problems -->
= Programs =
<blockquote>
Cygwin does not by default include a CLI package manager. Instead, you run cygwin.exe with the flag
'config', which updates your existing cygwin (labeled as installation, but only checks for missing/out
of date files). I have included the option of running 'CygwinPers.bat --config'. There are package
managers available for cygwin, such as apt-cyg, but they're pretty awful. It is much better to just
use the default installer.
Base Packages:
<syntaxhighlight lang="bash">
## Cygwin Packages
bc
offlineimap
msmtp
mutt
w3m
ncurses
abook
xclip
git, git-completion, gitk, tig
openssh
gcc
automake
python2
python3
xorg
rxvt-unicode
nc
nc6
tmux
zsh
irssi
rsync
## External Packages:
  urlview (win32) -- http://www.oocities.org/win32mutt/win32.html
  mutt with sidebar -- http://www.alexbr.com/wblog/?p=183
</syntaxhighlight>
== Terminal Programs ==
<blockquote>
{| class="wikitable"
|-
| [[mintty]]
|-
| [[openssh]]
|-
| [[mutt]]
|-
| [[mpd]]
|-
|}
== X Programs ==
<blockquote>
=== Xserver ===
<blockquote>
==== WINAPI ====
I'm not entirely sure what this is, or how it works but this is how DWM is able to run
natively in windows, and manage win32 windows ( but not cygwin windows unless launched with
startxwin /usr/bin/<progrm> )
</blockquote><!-- Xserver -->
<br>
<br>
=== Fonts ===
<blockquote>
{|
| <pre>/usr/share/fonts/font.ttf</pre> || font dir
|-
| <pre>fc-list</pre> || list all fonts
|}
There is not a lot of options for fonts in the cygwin package repo, Here
are the fonts that I use most frequently:
<syntaxhighlight lang="bash">
## Droid-Sans-Mono (preference)
http://www.fontsquirrel.com/fonts/droid-sans-mono
## DejaVu
http://sourceforge.net/projects/dejavu/
## copy fonts to /usr/share/fonts/
fc-list ##List all currently available fonts
Urxvt.font: xft:Droid Sans Mono-10 ##Setting font for urxvt in ~/.Xdefaults
</syntaxhighlight>
</blockquote><!-- Fonts -->
=== feh ===
<blockquote>
feh is an awesome image viewer. requires imlib2
<syntaxhighlight lang="bash">
## CYGWIN DEPENDENCIES:
# imlib2, libcurl, libcurl-devel, libpng, libX11, libXinerama, libXt-devel
# make sure to install all imlib, imlib2, libiml, and devel packages from setup.exe
#
# note that when hunting down a package because of a compile error, you can use
# cygcheck for more info ex: cygcheck -p x11/Intrinsic.h
curl -#O http://feh.finalrewind.org/feh-2.12.tar.bz2
make
make install
cp feh.exe /usr/bin/
</syntaxhighlight>
</blockquote><!-- feh -->
</blockquote><!-- X Programs -->
</blockquote><!-- Programs -->

Latest revision as of 04:03, 2 July 2022

Cygwin provides a unix-like environment to run processes under windows by translating unix syscalls.
It has no CLI package manager, but the installer can be scripted to install packages.

Notes

cygwin install
cygwin package management
cygwin configuration
cygwin programs
cygwin troubleshooting