Cygwin komut satırı üzerinden paketleri yükseltme ve yükleme?


113

Cygwin kullanan kör bir bilgisayar kullanıcısıyım.

Yükleme programına erişilebilir değil: belirli paketleri yükseltmek, yüklemek ve kaldırmak, tıklatmak ve kaydırmak için benzetilmiş fare tuş vuruşlarını kullanmanız gerektiğinden, yapılması oldukça zordur.

Paketleri manuel olarak kurmak / yükseltmek veya komut satırından yüklemek / yükseltmek için bir yol var mı?

Yanıtlar:


121

Apt-cyg yükleyin :

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

Bundan sonra, kurularak bağımlılıklar da dahil olmak üzere "lynx" paketini çalıştırabilirsiniz:

apt-cyg install lynx

4
Depo hareket etmedi : transcode-open / apt-cyg için bir DMCA şikayeti yayınlandı . Bu arada, Github kullanıcısı svnpenn, aynı zamanda "adaçayı" adında bir çatal yarattı ve onun halefi olduğunu iddia etti
Lucas Cimon,


Çalıştırılabilir olması için chmod + x apt-cyg kullanmak zorunda kaldım (sadece birine yardım etmesi durumunda)
Pedro A

23

Bazı insanlar doğru şekilde apt-cygkendisinin wget'e ihtiyacı olduğunu ve apt-cygsizi wget'e ihtiyaç duyabilmek için açıkça bash olarak önyüklemeye yarayan tek bir çözüm olduğunu söyledi wget.

Mintty bash kabuğunuzda böyle bir fonksiyon oluşturun:

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>&-
}

Şimdi neredeyse wget gibi kullanabilirsiniz :

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

Afedersiniz, @moreaki, fakat apt-cyg'den anlayamadığım bir şey var: Klasik CygWin Windows kurulumunda (/) ftp / http indirme dosyalarından biri olup olmadığına bakılmaksızın depoları / paketleri konumunu belirtebilirim / belirtmeliyim. siteler veya yerel sürücü (bilgisayarımda). Resmi googlecode sitesinde böyle bir seçenek görmüyorum. Nerede gelmez apt-cygpaketleri indirmek?
Sopalajo de Arrierez,

Afedersiniz geç cevap. Ben sadece resmi googlecode sitesinde apt-cyg kodu ile yağmalandı ve bana seçilen indirme sitesi , komut satırı seçeneğini kullanarak yansıtmayı belirtmediğiniz http://mirrors.kernel.org/sourceware/cygwingibi, belirtildiği gibi görünüyor . Komut satırını belirtirseniz, yansıtıcı sunucu bilgisi yazılır . findworkspace()-m/etc/setup/last-mirror
Moreaki

apt-cyg kurulumu artık wget'e dayanmıyor, bu yüzden bunların hiçbiri artık önemli değil? Web sitelerinde lynx kullanıyorlar (ki bu cygwin'de yerleşik olarak görünüyor?).
akauppi

@steven Önemli bir bölümden daha fazla değişen toptan satış düzenlemesinin nedeni nedir? Neredeyse ayrı bir cevabın kendisi
rastgele

1
Ardından aşağı oy verin ve rakip bir cevap verin. Eğer apt-Cyg devam ettiren ise bu düzenlemelerden tür sargıları ile de steamroll yetki veya arka bu tür anlaşılacağı profilinizde veya düzenleme özet veya herhangi bir yerde görünür hiçbir belirti yoktur
rastgele

21

Resmi apt-Cyg kurulum yöntemidir:

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

İki adım üçten iyidir. Sonra:

apt-cyg install nano

Bu arada, çalışması için apt-cyg kullanabilmek için wget , tar , gawk ve bzip2'yi kurmanız gerekir. Wget dışında, diğerleri varsayılan Cygwin kurulumu ile birlikte gelir.


2
64 bitlik Cygwin için svnve apt-cygkırılmış olabilir. Bu yüzden three stepwget yaklaşımını kullanarak yüklemek apt-cygve sonra apt-cyg dosyasının 98 ve 105 numaralı satırlarına geçmek $mirror/setup...zorunda $mirror/x86_64/setup...kalabilirsiniz.
sagunms

17

Eski soru, ancak google ve buraya gelenler için : Resmi kurulumda basit * .bat komut dosyası hazırlamama izin veren komut satırı argümanları var - sadece "install-pkg.bat" satırına aşağıdaki satırı koyun ve bu dosyayı kök dizininize koyun (örneğin, C: \ cygwin):

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

Aynı dizine http://www.cygwin.com/setup-x86.exe (32bit) veya http://www.cygwin.com/setup-x86_64 (64bit) indirip koymanız gerekir . Şimdi paketi yüklemek için yapmanız gereken tek şey:

install-pkg packagename

Olumlu: resmi kurulum, herhangi bir paket için her zaman çalışmalıdır. Negatif: Geçerli (haziran / 2015) resmi kurulum, gerçekte bir tanesine ihtiyaç duymasa da yönetici hakları gerektirir (örn. Sistem klasörlerinin dışındaki kök dizin).


1
güzel cevap, zaten herhangi bir Cygwin kurulumunda sahip olduğunuz bir araç; Ancak, zaten yüklü olan tüm paketleri güncellemekten alıkoyamıyorsunuz gibi görünüyor? sadece yeni bir paket kurmak istiyorsanız oldukça can sıkıcı bir durum; Başka bir deyişle, graphical setup.exe
dosyasının

1
Not setup.exe şimdi setup-x86.exe - veya cpu bitlerine bağlı olarak bir değişken olarak adlandırılmaktadır.
ErichBSchulz

Bağlantı koptu, şimdi: cygwin.com/faq/faq.html#faq.setup.cli Yanıtınızı düzenleyebilir misiniz? Thanks
Benj

--no-adminDüğmeyi kullanıyorsanız (aynı ile -B) yönetici haklarına ihtiyacınız yoktur .
cdlvcdlv

13

Cygwin's setup.exe, en azından 1.7 "beta" sürümünde, "katılımsız" bir modda yerleşiktir. Setup.exe kısayolunuzu bir komut penceresine sürükleyin ve bırakın (veya anahtarlarla çalıştırmaya hazırlanın) ve -qardından katılımsız mod -Pve ardından virgülle ayrılmış paket adları ekleyin . Yani, benim için bu yüklü vaşak:

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

hey, işe yarıyor ama peki kurulum sırasında bazı paketler eklemek istersem, nasıl yapmalıyım?
Johnydep

1
Not setup.exe şimdi setup-x86.exe - veya cpu bitlerine bağlı olarak bir değişken olarak adlandırılmaktadır.
ErichBSchulz

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

veya

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

Bu işlem cURL, git ve make'i sessiz modda hiçbir kısayol olmadan kurar.



0

Kabul edilen cevapta bir tavuk <=> yumurta sorunu var . Almadıysanız wgetya lynxda ilk kurulum sırasında kullanamazsınız apt-cyg. İşte kullanabilmem için nasıl wgetkurduğumu apt-cyg. (Bu cygwin kurulum exe CLI özelliklerini kullanır .)

# 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

En azından kurulum sonrası yapılandırma gerektirmeyen paketler için, onları cygwin root '/' dizininden kaldırdım. Kurulum tarafından ele alınan iki versiyonun ötesine geçen daha eski bir alt sürüm (1.7.14) sürümü istedim.

Ek bir avantaj, paketin cygwin paket yönetim dünyasının dışına çıkması ve bu nedenle, varsayılanlar tutulması durumunda bir tür kara kara listenin otomatik olarak en yeni paketle güncellenmemesidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.