120 votes

Mise à jour et installation de paquets par la ligne de commande Cygwin ?

Je suis un utilisateur d'ordinateur aveugle qui utilise Cygwin.

Le programme d'installation n'est pas très accessible : la mise à niveau, l'installation et la suppression de paquets spécifiques sont assez difficiles à réaliser car vous devez utiliser des touches de souris simulées pour cliquer et faire défiler.

Existe-t-il un moyen d'installer/mettre à niveau manuellement des paquets ou de les installer/mettre à niveau via la ligne de commande ?

123voto

davcar Points 376

Installer apt-cyg :

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

Après cela, vous serez en mesure d'installer le paquet "lynx", y compris les dépendances en exécutant :

apt-cyg install lynx

25voto

Moreaki Points 712

Puisque certaines personnes ont déclaré à juste titre que apt-cyg lui-même a besoin de wget et afin d'obtenir apt-cyg vous avez besoin de wget, il y a une solution bash seulement pour bootstrap wget en pur bash.

Créez une fonction comme celle-ci dans votre Shell de mintty 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>&-
}

Maintenant vous pouvez l'utiliser presque comme wget :

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

23voto

peenut Points 369

Vieille question, mais pour les autres qui ont cherché sur Google et sont arrivés ici : L'installation officielle a des arguments de ligne de commande qui m'a permis de préparer un simple *.bat script - il suffit de mettre la ligne suivante dans par exemple "install-pkg.bat" et de placer ce fichier dans votre répertoire racine (par ex. C:\cygwin ) :

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

Vous devez télécharger et mettre http://www.cygwin.com/setup-x86.exe (32 bits) ou http://www.cygwin.com/setup-x86_64.exe (64bit) dans le même répertoire. Maintenant, tout ce que vous avez à faire pour installer le paquet est :

install-pkg packagename

Positif : configuration officielle, devrait toujours fonctionner, pour n'importe quel paquet. Négatif : la configuration officielle actuelle (juin/2015) requiert des droits d'administrateur même si elle n'en a pas besoin (par exemple, le répertoire racine en dehors des dossiers système).

21voto

Marc Climent Points 335

El installation officielle d'apt-cyg la méthode est :

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

Deux pas valent mieux que trois. Alors :

apt-cyg install nano

Au fait, pour que cela fonctionne, vous devrez installer wget , tar , gawk y bzip2 afin d'utiliser apt-cyg. En dehors de wget, les autres sont fournis avec l'installation par défaut de Cygwin.

13voto

Martin Dorey Points 241

Le setup.exe de Cygwin, au moins dans la version 1.7 "beta", a un mode "unattended" intégré. Glissez et déposez votre raccourci setup.exe dans une fenêtre de commande (ou préparez-vous autrement à le lancer avec des interrupteurs), et ajoutez -q pour le mode sans surveillance, suivi de -P et des noms de paquets séparés par des virgules. Donc, pour moi, cela a installé lynx :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X