Cygwin 명령 줄을 통해 패키지를 업그레이드하고 설치 하시겠습니까?


113

Cygwin을 사용하는 시각 장애인 컴퓨터 사용자입니다.

설치 프로그램에 액세스 할 수없는 경우 : 시뮬레이션 및 마우스 키 스트로크를 사용하여 클릭 및 스크롤해야하므로 특정 패키지를 업그레이드, 설치 및 제거하기가 매우 어렵습니다.

패키지를 수동으로 설치 / 업그레이드하거나 명령 줄을 통해 패키지를 설치 / 업그레이드하는 방법이 있습니까?

답변:


121

apt-cyg 설치 :

lynx -source https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

그런 다음 다음을 실행하여 종속성을 포함하여 "lynx"패키지를 설치할 수 있습니다.

apt-cyg install lynx

4
저장소가 이동 하지 않았습니다 . DMCA 불만이 다시 transcode-open / apt-cyg 로 발행 되지 않았습니다 . 덧붙여, Github에서 사용자 svnpenn은 후계자 주장하는 동시에 "세이지"라는 포크를 생성
루카스 CIMON을


나는 그것을 실행할 수 있도록 chmod + x apt-cyg해야만했다 (누군가를 돕기 위해)
Pedro A

23

일부 사람들 apt-cyg은 wget이 필요하고 wget이 필요 하다는 것을 올바르게 언급했기 때문에 순수한 bash에서 apt-cyg부트 스트랩 wget을 수행 하는 bash 전용 솔루션이 있습니다.

박하 bash 쉘에서 다음과 같은 함수를 작성하십시오.

function __wget() {
    : ${DEBUG:=0}
    local URL=$1
    local tag="Connection: close"
    local mark=0

    if [ -z "${URL}" ]; then
        printf "Usage: %s \"URL\" [e.g.: %s http://www.google.com/]" \
               "${FUNCNAME[0]}" "${FUNCNAME[0]}"
        return 1;
    fi
    read proto server path <<<$(echo ${URL//// })
    DOC=/${path// //}
    HOST=${server//:*}
    PORT=${server//*:}
    [[ x"${HOST}" == x"${PORT}" ]] && PORT=80
    [[ $DEBUG -eq 1 ]] && echo "HOST=$HOST"
    [[ $DEBUG -eq 1 ]] && echo "PORT=$PORT"
    [[ $DEBUG -eq 1 ]] && echo "DOC =$DOC"

    exec 3<>/dev/tcp/${HOST}/$PORT
    echo -en "GET ${DOC} HTTP/1.1\r\nHost: ${HOST}\r\n${tag}\r\n\r\n" >&3
    while read line; do
        [[ $mark -eq 1 ]] && echo $line
        if [[ "${line}" =~ "${tag}" ]]; then
            mark=1
        fi
    done <&3
    exec 3>&-
}

이제 거의 wget처럼 사용할 수 있습니다 .

__wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg > /usr/bin/apt-cyg && chmod 0755 /usr/bin/apt-cyg

실례합니다, @moreaki, apt-cyg에서 이해할 수없는 한 가지가 있습니다. 클래식 CygWin Windows 설치 프로그램에서 저장소 / 패키지 위치를 지정해야 할 수도 있습니다 (많은) ftp / http 다운로드 중 하나 사이트 또는 로컬 드라이브 (내 컴퓨터) 공식 Google 코드 사이트에는 이러한 옵션이 표시되지 않습니다. apt-cyg패키지는 어디서 다운로드합니까?
Sopalajo de Arrierez

답장 늦게 용서해주세요 방금 공식 googlecode 사이트에서 apt-cyg 코드를 훑어 보았고 명령 줄 옵션을 사용하여 미러를 지정하지 않은 경우 선택한 다운로드 사이트 http://mirrors.kernel.org/sourceware/cygwin가 지정된 것처럼 보입니다 . 명령 행을 지정하면 미러 서버 정보가에 기록됩니다 . findworkspace()-m/etc/setup/last-mirror
Moreaki

apt-cyg 설치는 ​​더 이상 wget에 의존하지 않으므로이 중 어느 것도 더 이상 중요하지 않습니까? 그들은 웹 사이트에서 lynx (cygwin에 내장 된 것 같습니까?)를 사용합니다.
akauppi

@steven 도매 편집이 중요한 부분보다 더 많은 이유는 무엇입니까? 그것은 거의 별개의 답변입니다
랜덤

1
그런 다음 공감하고 경쟁 답변을 제공하십시오. 당신이 APT-cyg의 메인테이너 인 경우 이러한 편집의 종류의 붕대에 밀어 붙여서 마칠 할 수있는 권한 또는 배경의 종류를 제안 프로필에 또는 편집 요약 또는 어디서나 볼 수있는 징후가없는
임의

21

공식 APT-cyg 설치 방법은 다음과 같다 :

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

두 단계는 세 단계보다 낫습니다. 그때:

apt-cyg install nano

그건 그렇고, 작동 하려면 apt-cyg를 사용하기 위해 wget , tar , gawkbzip2 를 설치해야합니다 . wget 외에도 다른 것들은 기본 Cygwin 설치와 함께 제공됩니다.


2
64 비트 시그윈 내용 svnapt-cyg고장 일 수도있다. 그래서 당신은 사용 할 수 있습니다 three step설치 wget과 접근 방법을 apt-cyg다음 교체 $mirror/setup...와 함께 $mirror/x86_64/setup...선 (98)는 apt-cyg 파일의 105.
sagunms

17

오래된 질문이지만 구글에 도착한 다른 사람들을 위해 : 공식 설정에는 명령 줄 인수가 있어 간단한 * .bat 스크립트를 준비 할 수 있습니다-예를 들어 "install-pkg.bat"에 다음 줄을 넣고 해당 파일을 루트 디렉토리에 넣으십시오. (예 : C : \ cygwin) :

setup-x86.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode --root "%cd%" --packages %*

당신은 다운로드하여 둘 필요가 http://www.cygwin.com/setup-x86.exe (32 비트) 또는 http://www.cygwin.com/setup-x86_64.exe 같은 디렉토리에 (64 비트)를. 이제 패키지를 설치하기 위해해야 ​​할 일은 다음과 같습니다.

install-pkg packagename

긍정적 : 공식 설치는 모든 패키지에 대해 항상 작동해야합니다. 부정적 : 현재 (2015 년 6 월) 공식 설정에는 실제로 필요하지 않지만 (예 : 시스템 폴더 외부의 루트 디렉토리) 관리자 권한이 필요합니다.


1
Cygwin에 이미 설치되어있는 도구이기 때문에 좋은 대답입니다. 그러나 이미 설치된 모든 패키지를 업데이트하지 못하게 할 수 있습니까? 단지 하나의 새로운 패키지를 설치하고자한다면 상당히 성가신 일입니다. 다시 말해서 graphic setup.exe의 "Keep"옵션에 해당하는 명령 줄이 없습니다.
golimar

1
note setup.exe는 이제 setup-x86.exe 또는 CPU 비트에 따른 변형입니다.
ErichBSchulz

링크는 지금, 깨진입니다 : cygwin.com/faq/faq.html#faq.setup.cli은 당신이 당신의 대답에 그를 편집 할 수 있습니까? 감사합니다
Benj

--no-admin스위치 를 사용하는 경우 관리자 권한이 필요하지 않습니다 (와 동일 -B).
cdlvcdlv

13

Cygwin의 setup.exe는 최소한 1.7 "beta"릴리스에서 "unttended"모드가 내장되어 있습니다. setup.exe 바로 가기를 명령 창으로 끌어다 놓거나 스위치로 실행할 준비를 -q하고 무인 모드 -P와 쉼표로 구분 된 패키지 이름을 추가하십시오. 그래서 나를 위해, 이것은 lynx를 설치했습니다 :

$ "C:\Documents and Settings\martind\Desktop\setup-1.7.exe" -q -P lynx

이봐, 그것은 작동하지만 설치시 일부 패키지를 추가하려면 어떻게해야합니까?
Johnydep

1
note setup.exe는 이제 setup-x86.exe 또는 CPU 비트에 따른 변형입니다.
ErichBSchulz

7
setup-x86 -nq -s http://box-soft.com -P curl,git,make

또는

setup-x86 -nq -s http://box-soft.com -P curl -P git -P make

자동 모드에서는 단축키없이 cURL, git 및 make를 설치합니다.



0

허용 된 답변에 닭고기 <=> 계란 문제가 있습니다. 초기 설치 를하지 않았 wget거나 lynx초기 설치 중에는 사용할 수 없습니다 apt-cyg. 다음은 내가 wget사용할 수 있도록 설치 한 방법 apt-cyg입니다. ( cygwin setup exeCLI 기능을 사용합니다 .)

# 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

설치 후 구성이 필요하지 않은 패키지의 경우 cygwin 루트 '/'에서 압축을 해제했습니다. 설정에서 처리하는 두 가지 버전을 넘어서는 이전 버전의 하위 버전 (1.7.14)이 필요했습니다.

또 다른 장점은 패키지가 cygwin 패키지 관리 환경 외부에있게되므로 일종의 임시 블랙리스트가 기본값이 유지되는 경우 최신 패키지로 자동 업데이트되지 않는다는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.