Forum: Rails-ES Entendiendo el PATH

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2009-01-15 22:18
(Received via mailing list)
Hola gente, esta mañana he cerrado un hilo diciendo a Xavier Noria que
lo
primero que iba a  hacer para continuar mi apredizaje era mirarme bien
el
tema del RUBYPATH y de $:. Bien, antes incluso de esto, me dispongo
a instalar ruby, rails,mysql,... en fin, el mundo rails y alrededores.

Para hacerlo voy a seguir este mítico tutorial (a mi me parece que es
mítico, porque me lo he encontrado en muchas ocasiones cuando googleo)
[1]
Antes este blog se llamaba Hivelogic.

Bueno, al tema que me voy a cenar. :-)
Tengo un precioso MAC OS X Leopard 10.5 comprado (no soy rico, pero en
el
curro uso Mac y sólo le veo ventajas, así que hice la inversión). Este
como
todos los demas :-) trae Ruby y Rails de serie.
Lo trae instalado en:
#!/usr/bin/ruby

Y esto, según Dan Benjamin [1] es una mala idea, ya que este directorio
es
susceptible de sufrir actualizaciones automáticas por parte de Apple,
cosa
que esta bien para que todo el OS funcione bien. Ellos mandan, yo sólo
lo
uso
El caso es que este tio dice que si situamos todo nuestro software
personal
(el que compilamos nosotros Ruby, Rails, mysql, httpd,...) en:
#!usr/local/ruby

Estara a salvo de las actualizaciones automáticas. Es algo que por
convenio
han establecido lo sistemas Like-UNIX (Como Mac OS X).

¿Que pensais de lo que he contado? ¿Es una chorrada? ¿Tiene razón?

A mi me da igual, lo voy a hacer para enfrentarme al tema de los PATH's
que
es algo que me trae loco.
Se que hay gente que es partidaria de una tercera opción, que sería usar
MacPORTS [2]. Puede que sea comodo e igual en un futuro es mi opción,
pero
para aprender a compilar, tengo que compilar :-) ¿no?

MI PREGUNTA:
Una vez que me decido a hacerlo, empiezo el tutorial y me dice lo
siguiente:
__________-----------------------------------________________---------------------------------------------

By default, tell the system to look in /usr/local for files *first* by
editing your path. On Mac OS X,

either create or edit a file called .bash_login in your home folder
(note
the ".", it's a hidden file)

and add the following line to it:

export PATH="/usr/local/bin:/usr/local/sbin:$PATH"


__________-----------------------------------________________---------------------------------------------
Yo he buscado este archivo en "/Users/andres" ¿¿mi home??? ¿est0 es lo
que
el llama HOME o Es dos niveles por encima. AQUí: "/" ?
Bueno, buscando en "/Users/andres" con "ls -a" lo más parecido que tengo
es:
.bash_history.

Mis 5 preguntas: (son muchas, pero rápidas de contestar. Para el que las
sepa claro :-) )

1- Mac OS X trae el .bash_login creado por defecto????

2- He leido [3] que la configuración del PATH no solo se puede hacer en
este
fichero, sino que también se puede establecer en otros dos (.bash_login,
.bash_profile y .profile)
Yo no tengo (no veo) ninguno de los tres. ¿Es normal esto?

3- ¿En cual de los tres debería de poner lo de: "export
PATH="/usr/local/bin: /usr/local/sbin:$PATH" ?

4- Por cierto ¿Como funciona lo de (export)? el sistema lee el fichero y
une
todas las sentencias export que haya y las une para hacer el PATH?

5- Debería de haber algun otro "camino" en el fichero que vosotros me
digais, a aprte de usr/local?

Ha sido un hilo largo, pero al contrario que el último, creo que esta
vez me
expresado con claridad, y que el que sepa menos que yo va a aprender
algo
leyendolo.
A mi me gustaría encontrarme algo así si acabase de empezar con el tema
del
terminal y los PATH's

Un saludo y muchas gracias por adelantado

[1] http://danbenjamin.com/articles/2008/02/ruby-rails-leopard
[2] http://www.macports.org/
[3]
http://macosx.com/forums/mac-os-x-system-mac-softw...
Ba6e83f1628194a060613026a33d8881?d=identicon&s=25 Isaac Feliu Pérez (Guest)
on 2009-01-15 23:21
(Received via mailing list)
Buenas Andres,

contesto rápido que todavia tengo que cenar:

1) No
2) Es normal
3) En el que quieras, todos te sirven
4) export es un comando de unix-like para setear variables de entorno,
en este caso estás seteando la variable de entorno PATH que la usa el
sistema operativo y un millar de aplicaciones unix-like para buscar
automaticamente executables, es decir, si tu haces desde la linea de
comandos "grep loquesea", el binario grep está en un directorio
especificado en el PATH y por esto el sistema operativo lo encuentra y
lo ejecuta. El orden de búsqueda va en función del orden en el que
aparecen los directorios en el PATH, por esto, si tienes un binario
"ruby" en /usr/local/bin/ruby y otro en /usr/bin/ruby, en función de
que directorio tengas ANTES en el path, te ejecutará uno o otro cuando
pongas "ruby" en la linea de comandos. Si no lo pusieras en el path
tendrias que poner /usr/local/bin/ruby para ejecutar el ruby que tu
quieres y no el que el sistema encuentra. (Vaya tooooochooo!!!)
5) /usr/local lo veo como la mejor opción para meter cosas compiladas
por ti, macports lo pone en /opt/local, pero..... al final da lo mismo
si es tu maquina y solo la tocas tu.

Espero haver servido de ayuda!

Saludos,
--
Isaac Feliu
Bc309914890c202136d6964cb3033ceb?d=identicon&s=25 cartuchoGL (Guest)
on 2009-01-16 00:10
(Received via mailing list)
Andrés gutiérrez
escribió:> Hola gente, esta mañana he cerrado un hilo diciendo a Xavier Noria 
que
> lo primero que iba a  hacer para continuar mi apredizaje era mirarme
> bien el tema del RUBYPATH y de $:. Bien, antes incluso de esto, me
> dispongo
> a instalar ruby, rails,mysql,...
... bla bla bla bla ...

Andrés, se que en esta lista somos mega guays y super enrollados y
sabemos un huevo de todo, pero esta lista es de rails y hay que intentar
ceñirse al tema pero, como tampoco quiero ser borde.

cuando pones

rails killer_web_app -d mysql

en realidad bash, la shell, hace

/usr/bin/rails killer_web_app -d mysql

bash usa la variable de entorno PATH para encontrar los programas

¿Como los encuentra? Primero busca en una lista de comandos "built-in"
como export, for, if, etc... si no lo encuentra busca en la variable de
entorno PATH y por orden en las carpetas va buscando.

puedes acceder a una variable de entorno anteponiendole un $, ejemplo:

host:~ user$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

puedes establecerlas usando export
host:~ user$ export PATH=/new/path:$PATH
host:~ user$ echo $PATH
/new/path:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

donde esta rails?

host:~ user$ whereis rails
/usr/bin/rails

NOTA: en lo referente al path la shell requiere que los archivos sean
ejecutables (en MacOSX como en los demas unix, tener permiso de
ejecucion x, ver comando chmod para mas detalles sobre permisos)

NOTA: Puedes ver todas las variables de entorno ejecutando export sin
parametros
host:~ user$ export
declare -x Apple_PubSub_Socket_Render="/tmp/launch-QXYN2p/Render"
declare -x COMMAND_MODE="unix2003"
declare -x DISPLAY="/tmp/launch-x3MvM8/:0"
declare -x HOME="/Users/user"
declare -x LANG="es_ES.UTF-8"
declare -x LOGNAME="user"
declare -x MANPATH="/usr/share/man:/usr/local/share/man:/usr/X11/man"
declare -x OLDPWD="/Users/user"
declare -x
PATH="/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin"
declare -x PWD="/Users/user/dbm"
declare -x SECURITYSESSIONID="ab233ca1"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x TERM="xterm-color"
declare -x TERM_PROGRAM="Apple_Terminal"
declare -x TERM_PROGRAM_VERSION="240"
declare -x USER="user"

>
> 
__________-----------------------------------________________---------------------------------------------
> Yo he buscado este archivo en "/Users/andres" ¿¿mi home??? ¿est0 es lo
> que el llama HOME o Es dos niveles por encima. AQUí: "/" ?

Tu home es $HOME en tu caso /Users/andres, en unix normalmente seria
/home/andres

> Bueno, buscando en "/Users/andres" con "ls -a" lo más parecido que
> tengo es: .bash_history.

El historial de comandos, puedes verlo con el comando history

>
> Mis 5 preguntas: (son muchas, pero rápidas de contestar. Para el que
> las sepa claro :-) )
>
> 1- Mac OS X trae el .bash_login creado por defecto????

no

>
> 2- He leido [3] que la configuración del PATH no solo se puede hacer
> en este fichero, sino que también se puede establecer en otros dos
> (.bash_login, .bash_profile y .profile)
> Yo no tengo (no veo) ninguno de los tres. ¿Es normal esto?

si

>
> 3- ¿En cual de los tres debería de poner lo de: "export
> PATH="/usr/local/bin: /usr/local/sbin:$PATH" ?

yo la mia la tengo en $HOME/.profile

>
> 4- Por cierto ¿Como funciona lo de (export)? el sistema lee el fichero
> y une todas las sentencias export que haya y las une para hacer el PATH?

Durante el arranque lee estos archivos en un orden determinado y los
ejecuta en la shell. Si pones
echo "que chachi soy" en .profile y abres un nuevo terminal veras

Last login: Thu Jan 15 22:16:52 on ttys007
que chachi soy
host:~ user$

>
> 5- Debería de haber algun otro "camino" en el fichero que vosotros me
> digais, a aprte de usr/local?

¿cosas que tengan bin?

>
> Ha sido un hilo largo, pero al contrario que el último, creo que esta
> vez me expresado con claridad, y que el que sepa menos que yo va a
> aprender algo leyendolo.

Bueno ahora sabes que eso que preguntabas tiene que ver con unix, osx.
La proxima de rails ;)
Puede que alguien te pueda aconsejar alguna lista en español sobre el tema.

> A mi me gustaría encontrarme algo así si acabase de empezar con el
> tema del terminal y los PATH's

Si frotas mucho la manzana, sale un genio que responde a todas tus
preguntas ;)

>
> Un saludo y muchas gracias por adelantado
>
> [1] http://danbenjamin.com/articles/2008/02/ruby-rails-leopard
> [2] http://www.macports.org/
> [3]
> http://macosx.com/forums/mac-os-x-system-mac-softw...
>

Algunos comandos utiles en linux, muchos extrapolables a osx

http://www.pixelbeat.org/cmdline_es_AR.html

procuren no romper sus ordenadores, recuerden, un gran poder conlleva
una gran responsabilidad.
Bc309914890c202136d6964cb3033ceb?d=identicon&s=25 cartuchoGL (Guest)
on 2009-01-16 00:16
(Received via mailing list)
Lo estuve buscando antes pero no lo encontre, una comparativa de unixes

http://bhami.com/rosetta.html

Un saludo.
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2009-01-16 09:47
(Received via mailing list)
HAs sido de mucha ayuda Isaac. Esta tarde lo pruebo desde casa

Gracias mil

Un saludo

El 15 de enero de 2009 23:20, Isaac Feliu Pérez
<isaac.feliu@gmail.com>escribió:
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2009-01-16 10:03
(Received via mailing list)
Ahora me toca darte las gracias a ti cartuchoGL. Me lo has explicado
igual
de bien que Isaac, y eso que te ha tocado los cojo... :-) Es de
agradecer

Un poquito de polémica:
Dices que esta lista es de Rails. Si pero no puedes llegar a sentirte
comodo
ejecutando cositas por terminal (rake, rails,...) si no te sientes
comodo
con el terminal. Pienso que no esta demás que en una lista de rails se
explique en algún hilo como llegar a tener todo funcionando, y como
entender
algunos conceptos básicos del SO. En especial UNIX que es donde acabaran
en
producción la mayoría de las rails App

Pero esta es solo mi opinión. La opinión de un NO licenciado en
informática
que no ha pasado por los mismos caminos que un INFORMÁTICO.

Lo dicho CartuchoGL, muchísimas gracias.



HAs sido de mucha ayuda Isaac. Esta tarde lo pruebo desde casa
39086eb3d9a1437276d07c08ea0c3821?d=identicon&s=25 Guillermo Álvarez Fernández (Guest)
on 2009-01-16 12:43
(Received via mailing list)
_______________________________________________
Ror-es mailing list
Ror-es@lists.simplelogica.net
http://lists.simplelogica.net/mailman/listinfo/ror-es
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2009-01-16 13:00
(Received via mailing list)
Hola Guillermo, gracias a ti también por contestar. y en cuanto a lo de
que
no es sitio para esta pregunta, ya le he contestadop en este mismo hilo
a
cartuchoGL. Ya he dado mi punto de vista, pero vale, comprendo y acepto
el
vuestro:

>>Por cierto, este tema no tiene nada que ver con rails, y tenemos un admin
que se mosquea facilmente cuando no se cumplen las reglas de la lista.
Te
>>recomiendo hablar en bajito por si acaso se entera.

Manuel, no hace falta que me regañes :-) ya lo he entendido y veo que es
OFF-TOPIC. Pero ayer cuando abri el hilo no lo vi tan off-topic


un saludo,
El 16 de enero de 2009 12:42, Guillermo Álvarez Fernández <
guillermo@cientifico.net> escribió:
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2009-01-16 13:07
(Received via mailing list)
2009/1/16 Andrés gutiérrez <andresgutgon@gmail.com>

> OFF-TOPIC. Pero ayer cuando abri el hilo no lo vi tan off-topic
>


No voy a regañar :) El principio que aplico, o intento, a estas
cuestiones
de los offtopics opinables o nebulosos, es que siempre que se pueda se
concede el beneficio de la duda a cambio de que se mantengan 'short &
sweet'. En este caso ha fluido la información de forma enriquecedora, se
han
solucionado dudas y, ya que empieza a ser menos 'short', lo cerramos ya,
y
podemos decir que nadie ha resultado herido :)
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2009-01-16 13:35
(Received via mailing list)
Por mi todo ok. Para mi ha sido muy enriquecedor.
Sólo un tema. Y el que avisa no es traidor.
Yo no he probado todavía todo esto que me han explicado y puede que me
salte
alguna duda.
¿puedo seguir con el hilo para terminar de hacerlo funcionar?
¿o sera demasiado?
No es coña, no quiero molestar. Y si me dices que NO, por mi queda
cerrado
el hilo.
Aunque me vendría muy bien tenerlo abierto durante esta tarde que es
cuando
voy a ponerme a compilar, descargar, cambiar PATH's,...todo el rollo, la
idea es despertarme el sabado con todo(Ruby, RoR, mysql,...) update en
usr/local/bin :-)

Ya me dirás

gracias a todos

El 16 de enero de 2009 13:06, Manuel González Noriega <
manuel.gonzalez.noriega@gmail.com> escribió:
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2009-01-17 21:40
(Received via mailing list)
Hola, siento ser yo otra vez. Pero la buena noticia es que no es para
reabrir el hilo. Es sólo para decir que gracias a los tutoriales de Dan
Benjamin y a vosotros ahora tengo todo lo necesario para trabajar con
Rails en desarrollo en Mac funcionando desde /usr/local/bin!!!!

También decir que hoy he empezado un blog. Más bien va a ser un cuaderno
de
apuntes para las cositas que me vayan quedando claras he publicado lo
que se
ha hablado en esta lista asi como los enlaces a los articulos de dan
Benjamin. Esta aquí [1]. Puede que no me explique con claridad o que me
equivoque en algún concepto. Si creís que hay cosas que puedo cambiar,
no
tenéis más que dejar un comentario.

Si más, muchas gracias a todos y ya nos veremos por aquí

Un saludo

[1]
http://usandolarueda.blogspot.com/2009/01/instalar...

El 16 de enero de 2009 13:34, Andrés gutiérrez
<andresgutgon@gmail.com>escribió:
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2009-01-18 13:10
(Received via mailing list)
Buenos dias. Espero no crispar a nadie, se que este es el tercer mensaje
que
no debería haber escrito desde que Manuel cerro el hilo. En serio lo sé.
Pero es que estoy buscando por Google y no encuentro un pequeño detalle
que
me está volviendo loco. Lo que si es cierto es que esta super
relacionado
con el resto del hilo.

Lo que dije en mi ultimo mensaje lo mantengo. todo lo instale bien y no
hubo
problema. Pero el otro dia, en este mismo hilo, cartuchoGL uso un
comando
"whereis" para mostrarme donde estaba el ejecutable del comando ruby
(por
ejemplo) esto daba:
andres$ whereis ruby
/usr/bin/ruby

Pero lo que me vuelve loco es que hoy, que se supone que he cambiado el
$PATH:
andres$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Me sigue mostrando lo mismo!!!

Pero si ejecuto "which", si que me muestra el ruby que tengo en el dir
local:
which ruby
/usr/local/bin/ruby

3 PREGUNTAS:
¿Qué está pasando?
¿WHEREIS y WHICH no son equivalentes?
¿Me falta por cambiar algo para estar seguro que estoy funcionando
siempre
desde /usr/local/bin?

Gracias y en serio que me gustaría ser más coherente y no tener que
recurrir
de nuevo a la lista. Pero nuevamente pienso que es una pregunta que
puede
completar más el hilo. Aunque a alguien que tenga el culo pelado de
manejarse en UNIX-like SO le repatee verla en una lista de Rails. Yo
entiendo el punto de vista de estas personas. Pero pensad que os encanta
rails y no tenéis esa experiencia previa con UNIX.

No sé, igual es un OFF-TOPIC gigante y yo un pesado de la ost...

Un saludo, y como siempre deseando venir a la lista con temas cada vez
menos
OFF-TOPIC

El 17 de enero de 2009 21:40, Andrés gutiérrez
<andresgutgon@gmail.com>escribió:
0e34c56054c414263e933a1b8b3d0d55?d=identicon&s=25 Ruben Davila (rdavila)
on 2009-01-18 14:09
(Received via mailing list)
Hola Andrés tu crees que podria ser por el orden del PATH?

/usr/local/bin:.../usr/bin:....

(Creo que hace falta una siesta)

Saludos.
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2009-01-18 14:31
(Received via mailing list)
Y tanto que me hace falta una siesta!!!!
Porque no te pillo :-(
>>/usr/local/bin:.../usr/bin:...

No se supone que pilla primero lo que primero va en la variable
$PATH????
/usr/local...va  lo primero de todo no?
echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Pues lo dicho, no se lo que me quieres decir...Y lo de la siesta lo
dejare
para otro día. tengo un precioso tutorial de Ruby delante

Un saludo
El 18 de enero de 2009 14:09, Ruben. D. <ruben.grunge84@gmail.com>
escribió:
0e34c56054c414263e933a1b8b3d0d55?d=identicon&s=25 Ruben Davila (rdavila)
on 2009-01-18 17:32
(Received via mailing list)
Habia entendido mal tu mensaje, segun el 'man', 'whereis' no usa la
variable
$PATH sino busca en directorios estandares:

DESCRIPTION
       whereis  locates  source/binary and manuals sections for
specified
files.  The supplied names are first stripped of
       leading pathname components and any (single) trailing extension
of
the form .ext, for example, .c.  Prefixes of  s.
       resulting from use of source code control are also dealt with.
whereis then attempts to locate the desired program
       in a list of standard Linux places.

Aqui explican algo del tema: http://tinyurl.com/8mcn7x

Y de acuerdo a lo que he experimentado siempre se va a respetar el
$PATH,
asi que no hay que preocuparse:

[rdavila@scooby:~]$ echo $PATH
/home/rdavila/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
[rdavila@scooby:~]$ /usr/bin/ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
[rdavila@scooby:~]$ /usr/local/bin/ruby -v
ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-linux]
[rdavila@scooby:~]$ ruby -v
ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-linux]

Ahora si me voy antes que venga el niño Manuelito ;)

Saludos.
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2009-01-18 18:01
(Received via mailing list)
Manuel si vuelvo a reabrir este hilo, me dices donde quedamos y dejo que
me
metas una paliza.

Ruben es estupendo que me hayas resuelto la duda, pero ¿no crees que la
vacilada del primer mensaje sobraba? Y que te ha faltado un "Lo
siento..."
No te lo tomes a mal, pero a nadie le gusta que le vacilen, y menos si
el
que te vacila NO tiene la razón.
>>Hola Andrés tu crees que podria ser por el orden del PATH?
>>/usr/local/bin:.../usr/bin:...
>>(Creo que hace falta una siesta)

En cuanto a tu segundo mail, mil gracias por aclararme la duda. Una
cosita
más que tengo clara. En serio gracias

Un saludo

NOTA:
Ruben: Si algo de lo que he dicho no te ha parecido bien, contestame de
forma personal. Este hilo para mi esta cerrado con candado :-)


2009/1/18 Ruben. D. <ruben.grunge84@gmail.com>
This topic is locked and can not be replied to.