Como puedo modificar un comando ?

:noland: noland2k1 en noland2k1.com
Mie Sep 27 19:18:43 BST 2006


Bueno, ya lo he conseguido.

Finalmente, no me ha hecho falta "debianizar" el sourcecore que he
modificado a nivel de programación en c con gedit.

Lo he hecho de la siguiente manera:

En el directorio build-tree/coreutils-5.93/ he hecho ./configure
Y después sudo make install

Y me ha funcionado!!!!!!! Whoami ya me dice "hola maestro, como está; usted
es noland" habiendo evidentemente agregado esta parte primera.

La verdad me ha hecho un huevo de ilusión.

Un saludo y gracias!





-----Mensaje original-----
De: ubuntu-es-bounces en lists.ubuntu.com
[mailto:ubuntu-es-bounces en lists.ubuntu.com] En nombre de :noland:
Enviado el: miércoles, 27 de septiembre de 2006 2:17
Para: 'Manuel Duran Moyano'; ubuntu-es en lists.ubuntu.com
Asunto: RE: Como puedo modificar un comando ?

Hola, gracias por su detallado mensaje.

Lo he seguido paso a paso, y encuentro problemas.

Por ejemplo, no queda claro que hay que usar fakeroot (yo al menos, no he
conseguido hacer tirar la línea .... )

Bien, una vez hecho esto, obtengo constantemente los mismos errores, los
cuales transcribo:

esta última parte, arroja constantemente el error siguiente:


QUOTE  

***********************************************************
NOTICE: Some tests may be run only as root.
  Do `make check-root' as `root' to run these tests.
***********************************************************
Making check in basename
make[3]: Entering directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/basename'
/usr/bin/make  check-TESTS
make[4]: Entering directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/basename'
PASS: basic
==================
All 1 tests passed
==================
make[4]: Leaving directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/basename'
make[3]: Leaving directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/basename'
Making check in chgrp
make[3]: Entering directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/chgrp'
/usr/bin/make  check-TESTS
make[4]: Entering directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/chgrp'
./no-x: this test requires that you be a member of more than one group,
but running `id -G' either failed or found just one.  If you really
are a member of at least two groups, then rerun this test with
COREUTILS_GROUPS set in your environment to the space-separated list
of group names or numbers.  E.g.,

  env COREUTILS_GROUPS='users cdrom' make check

SKIP: no-x
./posix-H: this test requires that you be a member of more than one group,
but running `id -G' either failed or found just one.  If you really
are a member of at least two groups, then rerun this test with
COREUTILS_GROUPS set in your environment to the space-separated list
of group names or numbers.  E.g.,

  env COREUTILS_GROUPS='users cdrom' make check

SKIP: posix-H
./basic: this test requires that you be a member of more than one group,
but running `id -G' either failed or found just one.  If you really
are a member of at least two groups, then rerun this test with
COREUTILS_GROUPS set in your environment to the space-separated list
of group names or numbers.  E.g.,

  env COREUTILS_GROUPS='users cdrom' make check

SKIP: basic
./deref: this test requires that you be a member of more than one group,
but running `id -G' either failed or found just one.  If you really
are a member of at least two groups, then rerun this test with
COREUTILS_GROUPS set in your environment to the space-separated list
of group names or numbers.  E.g.,

  env COREUTILS_GROUPS='users cdrom' make check

SKIP: deref
./recurse: this test requires that you be a member of more than one group,
but running `id -G' either failed or found just one.  If you really
are a member of at least two groups, then rerun this test with
COREUTILS_GROUPS set in your environment to the space-separated list
of group names or numbers.  E.g.,

  env COREUTILS_GROUPS='users cdrom' make check

SKIP: recurse
======================
All 0 tests passed
(5 tests were not run)
======================
make[4]: Leaving directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/chgrp'
make[3]: Leaving directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/chgrp'
Making check in chmod
make[3]: Entering directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/chmod'
/usr/bin/make  check-TESTS
make[4]: Entering directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/chmod'
PASS: octal
cmp: EOF on out
0a1
> chmod: `d/no-x': Permission denied
FAIL: no-x
PASS: equals
PASS: equal-x
PASS: c-option
PASS: setgid
PASS: umask-x
PASS: usage
======================================
1 of 8 tests failed
Please report to bug-coreutils en gnu.org
======================================
make[4]: *** [check-TESTS] Error 1
make[4]: Leaving directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/chmod'
make[3]: *** [check-am] Error 2
make[3]: Leaving directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests/chmod'
make[2]: *** [check-recursive] Error 1
make[2]: Leaving directory
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93/tests'
make[1]: *** [check-recursive] Error 1
make[1]: se sale del directorio
`/home/noland/coreutils-5.93/build-tree/coreutils-5.93'
make: *** [build-stamp] Error 2
 



no puedo paquetizar para instalar el fichero .deb!!!

consigo editar el código fuente de por ejemplo el whoami.c, pero después,
peta la generación del paquete.

¿como podría conseguir que tirase? dice algo de permision denied!

he leído por ahí algo de hacer "umask 022", pero lo he probado y tampoco
tira. No encuentro solución!

Muchas gracias por ayudarme, no encuentro ninguna solución por ahí, parece
que tiene que ver con algo del chmod permisision denied...







-----Mensaje original-----
De: ubuntu-es-bounces en lists.ubuntu.com
[mailto:ubuntu-es-bounces en lists.ubuntu.com] En nombre de Manuel Duran Moyano
Enviado el: martes, 26 de septiembre de 2006 15:06
Para: ubuntu-es en lists.ubuntu.com
Asunto: Re: Como puedo modificar un comando ?

El lun, 25-09-2006 a las 17:32 -0600, Gabriel Cruz Tellez escribió:
> Hola de nuevo:
> 
>   Lo que pasa es que un amigo me pregunto un dia que si podiamos
> cambiar o modificar un comando que ya este establecido en linux,
> entonces me puse a investigar un poco y es cierto lo que dicen de la
> direccion /usr/share/man/man1 son los archivos de man. 
> 
>   Checando en el gran amigo google llegue con lo que dice Ricardo de
> los diversos lenguajes, pero el principal asunto o problema que tengo
> es que quiero modificar un comando como por ejemplo uname, es decir:
> 
> Esto es lo que aparece cuando escribo en la terminal el comando uname
> -r
> 
> gabriel en gabriel-laptop:~$ uname -r
> 2.6.15-27-386
> 
> Y quisiera que apareciera eso, mas lo siguiente:
> 
> gabriel en gabriel-laptop:~$ uname -r 
> ¡Se modifico por decir  algo!
> 2.6.15-27-386
> 
>    Quiero probar el hecho de hacer el cambio en un comando, para ver
> de cierta manera como es el comportamiento de tal, uname es algo
> arbitrario por que no tiene que ser eso no tampoco el mensaje que
> escribi entre signos de admiracion, esto por la razon de que quiero
> ver si puedo hacer el cambio del codigo de un comando y pues quiero
> comenzar con un cambio pequeño y darme una idea con ello. 
> 
>   Por eso es que preguntaba si esto tenia que ver algo con lo de los
> scripts (perdon por no escribir bien jejejeje)
> 
> -- 
> -Hay una fuerza motriz más poderosa que el vapor, 
> la electricidad y la energía atómica: la voluntad. 
> 
> -Si buscas resultados distintos, no hagas siempre lo mismo.
>                                      *Einstein* 
> -- 
> ubuntu-es mailing list
> ubuntu-es en lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-es

Si quieres saber como esta escrito el comando (independiente del
lenguaje) debes bajar el codigo fuente de dicho programa, pero como
dichos comandos pertenecen a alguna paquete en particular deberias
seguir los siguientes pasos.

1) Determinar donde este localizado el comando
$ which comand       (which uname)

(para uname nos da /bin/uname)

2) Determinar a que paquete pertenece dicho archivo
$ dpkg -S /ruta/al/archivo (dpkg -S /bin/uname)

(nos indica que pertenece a coreutils)

3) Descargar codigo fuente del paquete (debes tener activado los
repositorios, estos aparecen con deb-src http:/...) 
$ apt-get source paquete ( apt-get source coreutils)



4) Al descargar el paquete fuente se creara un directorio con el nombre
del paquete y su versión, dentro de el deberas buscar el codigo fuente
del comando que necesitas. El paquete coreutils tienen todos los
programas básico de Unix/Linux (cat , chmod, uname, ...).


Con eso podras estudiar la forma en como trabaja cualquier comando o
programa, siempre y cuando este disponible su codigo fuente.


Ahora si lo quieres es modificar y crear tu propia versión deberás
descargar todos los paquetes necesarios para compilar dicho programa,
para eso solo debes ejecutar:

$ sudo apt-get build-dep paquete

(sudo apt-get build-dep coreutils)


y luego crear nuevamente el .deb (dentro del directorio que se creo al
bajar el paquete fuente:

$ sudo debian/rules binary


Esto realizara automaticamente los pasos de:
./configure
make
crear el paquete (nombrepaquete.deb)

Despues solo deberas instalarlo con

$ sudo dpkg -i paquetecreado.deb




-- 
Manuel Duran Moyano <mduran en ubiobio.cl>
Linux User: 205305 (http://Counter.li.org)
Ubuntu User: 1795 (http://http://ubuntucounter.geekosophical.net)
Launchpad: https://launchpad.net/people/mduran



-- 
ubuntu-es mailing list
ubuntu-es en lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-es

__________ Información de NOD32, revisión 1.1777 (20060926) __________

Este mensaje ha sido analizado con  NOD32 antivirus system
http://www.nod32.com



-- 
ubuntu-es mailing list
ubuntu-es en lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-es

__________ Información de NOD32, revisión 1.1777 (20060926) __________

Este mensaje ha sido analizado con  NOD32 antivirus system
http://www.nod32.com





Más información sobre la lista de distribución ubuntu-es