回答:
「setup.exe」インストーラには、apt-getの機能を提供するツールはありません。ただし、個別にダウンロードできるCygwinのコマンドラインパッケージインストーラーがありますが、完全に安定しているわけではなく、回避策に依存しています。
apt-cyg:http ://github.com/transcode-open/apt-cyg
プロジェクトの「問題」タブをチェックして、既知の問題を確認してください。
setup-x86.exe -q -P packagename1,packagename2
。ない空想のようにapt-get
、あるいはapt-cyg
それは、ほとんどの場合、トリックを行います。cmd.exe
(Cygwinを閉じた後)からこれを実行することもできます。
Cygwinのセットアップは、コマンドライン引数を受け入れ、コマンドラインからパッケージをインストールします。
たとえばsetup-x86.exe -q -P packagename1,packagename2
、GUIの対話なしでパッケージをインストールする場合(「無人セットアップモード」)。
(setup-x86.exe
またはを使用する必要があることに注意してくださいsetup-x86_64.exe
。)
パッケージリストについては、http://cygwin.com/packages/を参照してください。
setup-x86_64 --packages="openssh,python"
より便利なインストーラーの場合はapt-cyg
、パッケージマネージャーとして使用でき
ます。その構文
apt-get
は、プラスです。このためには、上記の手順に従い、Cygwin Bashを次の手順に使用します
wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
chmod +x apt-cyg
mv apt-cyg /usr/local/bin
これでapt-cyg
インストールされました。ここにいくつかのパッケージをインストールするいくつかの例があります
apt-cyg install nano
apt-cyg install git
apt-cyg install ca-certificates
wget
、apt-cyg
問題なくダウンロードされました。404はどの時点で表示されますか?
Cygwinの単純なパッケージマネージャーとして使用できるスクリプトがいくつかあります。しかし、知っていることは重要です。なぜなら、...ええと... Windowsのため、それらは常に非常に制限されることです。
パッケージのインストールまたは削除は問題ありません。Cygwinの各パッケージマネージャーがそれを実行できます。しかし、Windowsでは現在実行中の実行可能ファイルを上書きできないため、更新は面倒です。したがって、Cygwin DLLや、Cygwin自体から現在実行中の実行可能ファイルを含むパッケージを更新することはできません。Cygwinのインストールページにもこのメモがあります。
「よりフル機能のパッケージマネージャーがない理由は、そのようなプログラムがCygwinのすべてのPOSIX機能へのフルアクセスを必要とするためです。ただし、最初に存在するようなCygwinフリー環境で提供することは困難です。さらに、Windowsは使用中の実行可能ファイルの上書きを簡単に許可しないため、パッケージマネージャーがDLLを使用しているときに新しいバージョンのCygwin DLLをインストールすると問題が発生します。」
Cygwinのセットアップでは、Windowsレジストリを使用して、使用中の実行可能ファイルを上書きします。この方法では、Windowsを再起動する必要があります。したがって、パッケージを更新する前にすべてのCygwinプロセスを閉じることをお勧めします。これにより、変更を実際に適用するためにコンピューターを再起動する必要がなくなります。新しいパッケージのインストールは、まったく手間がかからないはずです。Cygwinのsetup.exe
実装以外のパッケージマネージャーは、使用中のファイルを上書きするメソッドを実装していないと思います。ファイルを上書きできない場合は、失敗するだけです。
更新:著作権の問題のため、最近リポジトリが無効になりました(DMCA削除)。それはのように見える、リポジトリの所有者が上DMCAテイクダウンを発行した彼自身のリポジトリと呼ばれる新しいプロジェクトを作成セージを(怒鳴る参照します)。
私にとって最高のもの。それは最新のものの1つだからです。これはCygwinのを使用せずsetup.exe
、何をsetup.exe
行うかを再実装しています。x86およびx86_64の両方のプラットフォームで正しく動作します。多かれ少なかれ追加の機能を持つ多くのフォークがあります。たとえば、kou1okadaフォークは改善されたバージョンの1つであり、これは非常に優れています。
apt-cygは単なるシェルスクリプトであり、インストールはありません。ダウンロード(またはリポジトリのクローンを作成)して実行可能にし、PATHのどこかにコピーします。
chmod +x apt-cyg # set executable bit
mv apt-cyg /usr/local/bin # move somewhere to PATH
# ...and use it:
apt-cyg install vim
シェルスクリプトとして実装された別のパッケージマネージャー。私はそれを試しませんでしたが、実際にはよさそうです。
リポジトリ内のパッケージの検索、カテゴリ内のパッケージの一覧表示、依存関係の確認、パッケージファイルの一覧表示などを行うことができます。他のパッケージマネージャーにはない機能があります。
捨てられたオリジナルのフォーク cyg-apt改善とバグ修正。かなり多くの機能があり、Pythonで実装されています。インストールはを使用して行われmake
ます。
Chocolateyを使用してCygwinをインストールした場合は、パッケージcyg-getをインストールできます。これは、実際にsetup.exe
はPowerShellで記述されたCygwinの単純なラッパーです。
コマンドラインモードもあります。さらに、インストールされているすべてのパッケージを一度にアップグレードできます(apt-get upgrade
DebianベースのLinuxの場合と同様)。
使用例:
setup-x86_64.exe -q --packages=bash,vim
使いやすいエイリアスを作成できます。次に例を示します。
alias cyg-get="/cygdrive/d/path/to/cygwin/setup-x86_64.exe -q -P"
次に、たとえば、次のコマンドでVimパッケージをインストールできます。
cyg-get vim
sage
apt-cyg
過去1〜2年で最もアクティブな貢献者(Steven Penny)によるフォークです。今年の初め、彼は元のapt-cyg
作者(Stephen Jungels)と意見の相違があり、プロジェクトを分岐したときにDMCA削除通知を発行したようです。Jungels(別名Transcode)がプロジェクトの原作者であることは確かなので、GitHubはすぐに元のプロジェクトを復元しました。現在、両方のプロジェクトが利用可能です。ただし、元のプロジェクトは分割以降、新しいコードの更新はありません。本当に厄介な状況です。
最初に、https://cygwin.com/setup-x86_64.exe(Windows 64ビット)でインストーラーをダウンロードしてから、次の手順を実行します。
# move installer to cygwin folder
mv C:/Users/<you>/Downloads/setup-x86_64.exe C:/cygwin64/
# add alias to bash_aliases
echo "alias cygwin='C:/cygwin64/setup-x86_64.exe -q -P'" >> ~/.bash_aliases
source ~/.bash_aliases
# add bash_aliases to bashrc if missing
echo "source ~/.bash_aliases" >> ~/.profile
例えば
# install vim
cygwin vim
# see other options
cygwin --help
私はこれと同様の解決策を求めていましたapt-get --print-uris
が、残念ながらapt-cygはこれを行いません。以下は、必要なパッケージとその依存関係のみをダウンロードして、ターゲットにコピーしてインストールできるようにするソリューションです。次に、出力を解析してapt-cyg
URIのリストを作成するbashスクリプトを示します。
#!/usr/bin/bash
package=$1
depends=$( \
apt-cyg depends $package \
| perl -ne 'while ($x = /> ([^>\s]+)/g) { print "$1\n"; }' \
| sort \
| uniq)
depends=$(echo -e "$depends\n$package")
for curpkg in $depends; do
if ! grep -q "^$curpkg " /etc/setup/installed.db; then
apt-cyg show $curpkg \
| perl -ne '
if ($x = /install: ([^\s]+)/) {
print "$1\n";
}
if (/\[prev\]/) {
exit;
}'
fi
done
上記は、ダウンロードが必要なパッケージのパスをcygwinミラールートに対して相対的に出力し、すでにインストールされているパッケージは省略します。それらをダウンロードするために、出力をファイルに書き込んでからcygwin-packages-list
wgetを使用しました。
mirror=http://cygwin.mirror.constant.com/
uris=$(for line in $(cat cygwin-packages-list); do echo "$mirror$line"; done)
wget -x $uris
その後、インストーラーを使用して、ローカルキャッシュディレクトリからインストールできます。これが機能するためにsetup.ini
は、以前のcygwinパッケージキャッシュからダウンロードしたファイルのあるディレクトリにコピーする必要があったことに注意してください(そうしないと、インストーラーは何が何であるかわかりません)。
古い質問ですが、まだ関連があります。今日(16/16/26)、私にとってはうまくいきました。
bashシェルから:
lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin
wget
またはcurl
おそらくこれのためのより良いツールです。(そして個人的には、$PATH
ではなく自分の別のディレクトリにインストールし/bin
ます。)
Dawid Ferenczyの答えはかなり完全ですが、彼のほとんどすべてのオプションを試した後、Chocolateyのcyg-getが最良であることがわかりました(少なくとも、私が作業できる唯一のもの)。
インストールしたかっwget
たのですが、手順は次のとおりです。
choco install cyg-get
次に:
cyg-get wget
通常、パッケージをインストールする前に、正確な名前を知る必要があります。
# define a string to search
export to_srch=perl
# get html output of search and pick only the cygwin package names
wget -qO- "https://cygwin.com/cgi-bin2/package-grep.cgi?grep=$to_srch&arch=x86_64" | \
perl -l -ne 'm!(.*?)<\/a>\s+\-(.*?)\:(.*?)<\/li>!;print $2'
# and install
# install multiple packages at once, note the
setup-x86_64.exe -q -s http://cygwin.mirror.constant.com -P "<<chosen_package_name>>"