Newsgroup: it.comp.os.win.windows10
Titolo: [domanda strana] Come installare binari su Windows manualmente

Ho un'applicazione che viene distribuita come archivio compresso ZIP.
Non c'è un'installer... all'interno del "pacchetto" vi sono due cartelle,
molto "unix oriented":
 
- share
- bin
 
In "bin" ci sono i binari che mi interessa usare da riga di comando,
dal prompt dei comandi insomma. In share mi pare ci sia solo
documentazione, tra cui la pagina "man".
 
Obiettivo poter usare gli eseguibili che sono in "bin" da riga
di comando, quindi:
 
- aprire il cmd.exe
- digitare "nome-comando fileinput"
- premere invio
 
Nell'esempio concreto il programma che mi serviva è "unix2dos":
 
https://waterlan.home.xs4all.nl/dos2unix.html
 
 
sono riuscito ad usarlo, ma ho dovuto digitare il percorso
dell'eseguibile:
 
prompt> C:\users\mioutente\downloads\unixtodos-blabla\bin\unix2dos nixformattedfile
 
la soluzione sarebbe inserire il percorso dell'eseguibile
nel %PATH%, ma dall'altra parte bisognerebbe "installare"
i files del pacchetto in posizioni "canoniche", (tipo:
 
C:\programmi\qualcosa
 
La domanda è come e dove installare una generica applicazione
che ha degli eseguibili in una dir del pacchetto ecc ecc?
 
L'obiettivo ripeto è poter usare l'applicazione da riga di comando,
senza dover digitare il percorso assoluto.
 
Grazie in anticipo!  :)

 senza dover digitare il percorso assoluto.
 
Apri la directory dove hai i "bin" (o fai un collegamento sul desktop), 
scrivi CMD sulla barra degli indirizzi e premi invio, così ti si apre 
direttamente nel path.
 
-- 
Finalmente mi sono sbarazzato della *MERIVA!* Mai più "beep" 
rompicoglioni :-D

 direttamente nel path.
 
Utile procedura.
Ma non è la risposta che cercavo, perché se in quella dir non c'è il
file di input dopo devi digitare tutto il percorso assoluto del file di
input no?
Resta scomodo in ogni caso.
 
Non sarebbe più saggio fare ad esempio una dir tipo in C: o
in C:\users\mioutente, chiamata ad esempio "bin" e metterci
dentro tutti gli eseguibili?
Poi aggiungerla al PATH dell'utente e via...
 
Ma ho chiesto perché sono ignorante in termini di windows,
esempio su alcune distribuzioni linux si fa un pacchetto
che quando lo installi copia i binari in una dir
 
/bin
 
/usr/bin
 
o similari la "/" fai conto che equivale grossomodo a "c:".
D'altra parte /bin, /usr/bin, e altre fanno parte del path
di default degli utenti.
Quando tu installi un certo software, la sua parte di files
binari viene installata in quelle dir e l'utente si ritrova
i comandi disponibili e richiamabili al prompt.
 
Su windows funziona diversamente credo, chiedevo per quello,
l'avevo scritto che era una domanda strana.

 Resta scomodo in ogni caso.
 
Si ma.. intanto riduci del 50% il dover scrivere il path completo :-P
 
Restando seri, ovunque tu lo metti anche senza "installer" il problema 
del path del file di input ti resta.
 
Puoi mettere i tuoi bin nella directory del tuo utente che è il percorso 
che ti si apre con CMD o c:\windows\system32 se lo apri come 
amministratore, ma comunque sia i file di input sempre dove li metti 
sono e devi scrivere il path completo. Questo lo risolvi mettendo i file 
da "lavorare" assieme ai binari.
 
Io comunque non potrei consigliarti altro e dovrai aspettare qualcuno 
più furbo :-D


 C:\programmi\qualcosa
 
No, basta una cartella qualsiasi che sia accessibile in lettura agli
utenti; basta anche "X:\TuaCartella", a quel punto ti basta aggiungere
"X:\TuaCartella" al PATH e gli eseguibili in tale cartella saranno
richiamabili direttamente senza specificarne il percorso; che poi sia
una buona cosa utilizzare le cartelle canoniche è un altro discorso, in
tal caso ti basterebbe creare la cartella (es.)
 
%PROGRAMFILES%\TuaCartella
 
ed aggiungere quella al PATH; per una lista delle variabili di ambiente
predefinite in Windows, dai un'occhiata qui
 
https://pureinfotech.com/list-environment-variables-windows-10/
 
 
ciao
 
 
 
 


Se la memoria non m'inganna per aggiungere un nuovo percorso al path
si usa:
 
path %path%;nuovo percorso
 
penso che il nuovo percorso vada messo tra virgolette se ci sono spazi
all'interno
-- 
Ciao
Andrea Malfatti


Dunque, correggete se sbaglio eh, faccio l'esempio col programma in
questione:
 
1- creo a mano la dir che ospita il contenuto del mio pacchetto unix2dos
 
cd c:\%programfiles%
md unix2dos
 
2- copio lì dentro il contenuto estratto dell'archivio ZIP di unix2dos,
   alla fine avrò:
 
c:\%programfiles%\unix2dos\bin
c:\%programfiles%\unix2dos\share
 
3- creo una directory contenente eseguibili che verrà aggiunta al %path%
 
md c:\%programfiles%\bin
 
4- aggiungo al path la dir del punto 3
 
5- creo nella dir del punto 3 dei collegamenti agli eseguibili che
   voglio utilizzare da riga di comando... ci sarà anche il comando da
   prompt per farlo.
 
 
In questo modo se un domani aggiungo un altro programmino del genere, ad
esempio "wget", lo installerò con la sua cartella in %programfiles%, e poi
farò un link all'eseguibile nella directory c:%programfiles%\bin.
 
È un'idea e non sò se funzioni in pratica, ora ho anche spento il PC
remoto con windows e non posso provare.
 
Alternativa un po' meno ordinata è copiare direttamente i vari binari
nella dir aggiunta al path. Così i comandi al prompt funzionano e stop,
il resto del contenuto dei "pacchetti" non saprei... pazienza.
 
 

 all'interno
 
Così modifichi il path solo per la sessione corrente, quando chiudi il
prompt dei comandi perdi l'impostazione.
 
Per farlo da riga di comando, ne parlavano qui ho visto:
 
https://stackoverflow.com/questions/9546324/adding-a-directory-to-the-path-environment-variable-in-windows
 
 
i comandi dovrebbero essere:
----------------------------
echo %path% > path_backup.txt
setx /m path "%path%;c:\tua\dir\da\aggiungere"
path "%path%;c:\tua\dir\da\aggiungere"
--------------------------------------
 
Il primo ti fa un backup del path attuale, il secondo
ti aggiunge la dir al path in modo permanente (occhio
che è distruttivo, ecco perché il primo comando è il
più importante), infine il terzo ti aggiunge la dir
al path anche per la sessione corrente, altrimenti
dovresti aprire un altro prompt per vedere applicato
l'effetto dell'impostazione.
 
In ogni caso direi che i comandi sopra è meglio eseguirli
da un prompt di amministratore in modo da lavorare a livello
di sistema e non di singolo utente per non mescolare path
di sistema con quello dell'utente (l'opzione /m di setx dice
si impostare i lpath di sistema, ma la variablie %path% credo
espanda al valore dell'utente semplice, così salta fuori un
minestrone.
 
Ci sono anche problemini con limitazioni riguardo il numero
di caratteri di qualcosa, letto così di sfuggita...
E comunque credo sia preferibile e più sicuro modificare il
path dall'apposita interfaccia grafica, come descritto ad
esempio qui:
 
https://www.howtogeek.com/118594/how-to-edit-your-system-path-for-easy-command-line-access/
 


Buongiorno a tutti,
direi che basti andare in: sistema, informazioni sul sistema, 
impostazioni di sistema avanzate, variabili d'ambiente.
A questo punto integri la path con i tuoi percorsi.
Spero sia la soluzione per i tuoi problemi.
Saluti
Marco
 

 A questo punto integri la path con i tuoi percorsi.
 
Sì, questo è chiaro, ma non sarebbe meglio una dir unica
in cui piazzare programmini analoghi che e una sola
aggiunta al PATH?
La domanda non era semplicemente come si fà, ma come sarebbe
meglio fare... grazie ad ogni modo.


Buongiorno a tutti,
davo per scontato che tu aprissi sotto "c:" una tua dir "xxxx"
e dentro di quella le tue dir
- share
- bin
come già consigliato dai precedenti post.
Non vedo altri modi pratici.
Saluti
Marco

 md c:\%programfiles%\bin
 
NO, per quale motivo dovresti crearla ? Hai già la directory
 
"%PROGRAMFILES%\Unix2Dos\bin"
 
che è stata creata  estraendo i files dallo zip, a questo punto ti
basta aggiungere tale directory al PATH "globale" usando il comando
"setx", ossia ad esempio
 
SETX /M PATH "%PATH%;%PROGRAMFILES%\Unix2Dos\bin"
 
ovviamente da un prompt "elevato" ossia aperto come amministratore, a
questo punto chiudendo il prompt e riaprendone un altro il path
includerà la nuova cartella e sarà possibile lanciare direttamente i
comandi contenuti nella stessa
 
una nota, se i comandi della tua "bin" NON sono compilati per 64bit ma
per 32bit, la cartella da usare non sarà "%PROGRAMFILES%" ma invece
sarà "%PROGRAMFILES(x86)%" ed andrà sostituita nei comandi visti sopra,
incluso ovviamente il SETX per impostare il PATH
 
 

 md "%PROGRAMFILES%\Unix2Dos"
 
a (s)proposito...
 
http://unxutils.sourceforge.net/
 
 
:D