Cygwin 패키지 apt-get
에 데비안 또는 yum
Redhat 과 비슷한 도구가 있습니까? 명령 줄에서 구성 요소를 설치할 수 있습니까?
Cygwin 패키지 apt-get
에 데비안 또는 yum
Redhat 과 비슷한 도구가 있습니까? 명령 줄에서 구성 요소를 설치할 수 있습니까?
답변:
'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의 간단한 패키지 관리자로 사용할 수있는 일부 스크립트가 있습니다. 그러나 그것들은 항상 상당히 제한적 이라는 것을 아는 것이 중요합니다. ... ehm ... Windows 때문에 .
Cygwin의 각 패키지 관리자는 패키지를 설치하거나 제거해도됩니다. 그러나 Windows에서는 현재 실행중인 실행 파일을 덮어 쓸 수 없으므로 업데이트가 쉽지 않습니다. 따라서 Cygwin DLL 또는 Cygwin 자체에서 현재 실행중인 실행 파일이 포함 된 패키지를 업데이트 할 수 없습니다. Cygwin 설치 페이지 에도이 참고 사항이 있습니다 .
"모든 기능을 갖춘 패키지 관리자가없는 기본 이유는 이러한 프로그램이 Cygwin의 모든 POSIX 기능에 대한 전체 액세스 권한이 필요하기 때문입니다. 그러나 Cygwin이없는 환경에서는 제공하기가 어렵습니다. 또한 Windows에서는 사용중인 실행 파일을 쉽게 덮어 쓸 수 없으므로 패키지 관리자가 DLL을 사용하는 동안 Cygwin DLL의 새 버전을 설치하는 데 문제가 있습니다. "
Cygwin의 설정은 Windows 레지스트리를 사용하여 사용중인 실행 파일을 덮어 쓰며이 방법을 사용 하려면 Windows를 다시 부팅해야합니다 . 따라서 패키지를 업데이트하기 전에 모든 Cygwin 프로세스 를 닫는 것이 좋습니다. 따라서 실제로 변경 사항을 적용하기 위해 컴퓨터를 재부팅하지 않아도됩니다. 새로운 패키지의 설치는 번거롭지 않아야합니다. Cygwin의 setup.exe
구현을 제외한 모든 패키지 관리자 는 사용중인 파일을 덮어 쓰는 방법을 구현 한다고 생각하지 않으므로 덮어 쓸 수 없으면 단순히 실패합니다.
업데이트 : 최근 저작권 문제로 인해 저장소가 비활성화되었습니다 ( DMCA 게시 중단 ). 그것은 처럼 보이는 저장소의 소유자의 DMCA 게시 중단 발행 자신의 저장소를하고라는 새로운 프로젝트 생성 세이지 (우는 소리 참조).
나에게 가장 좋은 것. 가장 최근의 것이기 때문입니다. Cygwin을 사용하지 setup.exe
않고 다시 구현 setup.exe
합니다. x86 및 x86_64 플랫폼 모두에서 올바르게 작동합니다 . 추가 기능이 많거나 적은 포크가 많이 있습니다. 예를 들어, kou1okada 포크 는 개선 된 버전 중 하나입니다 이며 정말 좋습니다.
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
다른 기능을 가진 많은 포크 도 있습니다.
다른 패키지 관리자는 쉘 스크립트로 구현되었습니다. 나는 그것을 시도하지 않았지만 실제로 좋아 보인다.
리포지토리에서 패키지를 검색하고, 범주에서 패키지를 나열하고, 종속성을 확인하고, 패키지 파일을 나열하는 등의 작업을 수행 할 수 있습니다. 다른 패키지 관리자에게는없는 기능이 있습니다.
버려진 원본의 포크 꽉 쥐다개선 및 버그 수정. 그것은 많은 기능을 가지고 있으며 파이썬으로 구현되었습니다. 를 사용하여 설치합니다 make
.
Chocolatey를 사용하여 Cygwin을 설치 한 경우 cyg-get 패키지를 설치할 수 있습니다. Cyg-get 패키지 는 실제로 Cygwin의 setup.exe
PowerShell로 작성된 간단한 래퍼 입니다.
또한 명령 행 모드가 있습니다. 또한 설치된 모든 패키지를 한 번 에 업그레이드 할 수 있습니다 ( 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 게시 중단을 발표 한 것으로 보입니다. 융 엘스 (일명 트랜스 코드)는 프로젝트의 최초 저자이기 때문에 GitHub는 곧 원래 프로젝트를 복원했습니다. 현재 두 프로젝트 모두 사용 가능하지만 원래 프로젝트는 분할 이후 새로운 코드 업데이트가 없었습니다. 정말 지저분한 상황입니다.
먼저 https://cygwin.com/setup-x86_64.exe(Windows 64bit) 에서 설치 관리자를 다운로드 한 후 다음을 수행하십시오.
# 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 패키지 캐시에서 다운로드 한 파일이있는 디렉토리 로 복사해야했습니다 (그렇지 않으면 설치 프로그램은 무엇을 알지 못합니다).
오래된 질문이지만 여전히 관련성이 있습니다. 오늘 나를 위해 일한 것은 다음과 같습니다 (6/26/16).
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>>"