* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

Caracteres extraños en mis archivos y sus nombres: Cómo convertir $HOME a UTF8

Estaba actualizando las Errata y Release notes de Mandriva (ahora están al día otra vez, con respecto a la versión en inglés) y he encontrado que se ha añadido este script en Perl útil cuando la 2007 se instala de nuevas, no actualizando, pero conservando el anterior /home.

Este script convierte los archivos del /home del usuario en UTF8. Creo que puede ser de utilidad ya que a alguno se habrá con que los caracteres acentuados, eñes, etc. no se muestran correctamente tras la migración a UTF8.

#!/usr/bin/perl

use File::Find;
use Locale::gettext;
use POSIX();

@ARGV == 0 || @ARGV == 1 && -d $ARGV[0] or die "usage: convert-filenames-to-utf8 []\n";
my $dir = $ARGV[0] || $ENV{HOME};

-d $dir or die "$dir is not a directory\n";

{
    my ($LC) = grep { $ENV{$_} } 'LC_ALL', 'LC_CTYPE';
    my $new_LC = $ENV{$LC};
    $ENV{$LC} =~ s/.UTF-8$//i or die "$LC=$ENV{$LC} does not contain UTF-8\n";
    POSIX::setlocale(LC_CTYPE, "");
    print STDERR "converting file names from $LC=$ENV{$LC} to $LC=$new_LC starting from directory $dir\n";
}

finddepth({ 
    wanted => sub {
	my $s = to_utf8($_);
	if ($s ne $_ && from_utf8($_) eq $_) {
	    print STDERR "$File::Find::dir: renaming $_ to $s\n";
	    my $ok = rename($_, $s);
	    if (!$ok && $! == 13) {
		my $mode = (lstat('.'))[2] & 07777;
		if ($mode && chmod($mode | 0700, '.')) {
		    printf STDERR "retrying after setting mode to 0%o\n", $mode | 0700;
		    $ok ||= rename($_, $s);
		}
	    }
	    $ok or warn "renaming failed: $!\n";
	}
    },
}, $dir);


sub from_utf8 {
    my ($s) = @_;
    Locale::gettext::iconv($s, "utf-8", undef); #- undef = locale charmap = nl_langinfo(CODESET)
}
sub to_utf8 { 
    my ($s) = @_;
    Locale::gettext::iconv($s, undef, "utf-8"); #- undef = locale charmap = nl_langinfo(CODESET)
}

Para ejecutarlo, guardarlo en el home del usuario (p.e. /home/pepito) y ejecutar:

cd ~/
chmod u+rx convert-filenames-to-utf8.pl
./convert-filenames-to-utf8.pl

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.


Gravatar de pacho

# 23874 Gracias por el post. ¡A



Gravatar de chutiloco

# 23944 ¿es fiable?

¿es fiable el script ese?
Me refiero en cuanto a seguridad de pérdida de datos y demás.

Supongo que aparte de la partición Home se podrá aplicar a cualquier otra ¿no?

Todo es relativo.

Todo es relativo.



Gravatar de luismago

# 23949 El script se limita a

El script se limita a cambiar el nombre de los archivos a codificación UTF-8, pero no toca el contenido de los archivos, supongo que es suficientemente fiable (en el peor de los casos te podrá montar un lío con los nombres, pero no corromperá el contenido de los archivos)

Yo no lo he probado porque de momento mi sistema principal sigue en MDV 2006 - la paciencia es una virtud ;) - y en todo caso ya uso UTF-8 desde 2005LE (ojalá hubiera tenido entonces ese script)

Sobre la segunda pregunta, sí. Si le pasas el nombre de un directorio como argumento, convertirá ese directorio en vez del $HOME. En las release notes se recalca más el /home, pues el resto de las particiones se supone que las vas a formatear en la instalación.

Observa que si actualizas (no instalas), se convertirán los nombres automáticamente en la actualización. El script es válido para cuando instalas de cero pero conservando el /home existente.

Si tienes algún particionamiento más específico (p.e. /var u /opt en su propia partición) y vas a instalar de cero conservando algún dato de esas particiones, creo que es mejor hacer copia de seguridad de lo que te interese y luego restaurar y pasar el script para los directorios restaurados si es necesario.

Al margen del script, es conveniente tener algo que poca gente tiene: copias de seguridad de tus datos. No te imaginas la frustración que te da al ver que no existen cuando realmente las necesitas.

Saludos,
luismago

-- 
  JID: luismago@jabber.org

Si se busca el triunfo como sea, se vive el drama de tener que ganar.

Saludos,
luismago

-- 
  JID: luismago@jabber.org

Ceterum censeo Carthaginem esse delendam. -Marco Porcio Catón



Gravatar de inigo

# 23958 Gracias

Gracias por el script, funciona estupendamente,
ya me veía renombrando todos los ficheros de uno en uno.



Gravatar de luismago

# 23964 Los créditos son para

Los créditos son para Yves-Gwenael Bourhis, del equipo de Software QA de Mandriva. :)

Él es el que subió el script al wiki, yo solo soy el mensajero ;)

Saludos,
luismago

-- 
  JID: luismago@jabber.org

Si se busca el triunfo como sea, se vive el drama de tener que ganar.

Saludos,
luismago

-- 
  JID: luismago@jabber.org

Ceterum censeo Carthaginem esse delendam. -Marco Porcio Catón



Gravatar de pacho

# 24012 Sería alguien tan amable de

Sería alguien tan amable de incluirlo en los libros colaborativos?

Gracias :-)


¡BUGs!

JID: pacho@jabber-hispano.org
El Blog de Pacho



Gravatar de drakedalfa

# 24034 Mi otro nombre es amable





Gravatar de picueck

# 24113 copiar y pegar

Hola Pacho y compañia.

¿podría alguien decirme por que al copiar y pegar en "kate" o "kwrite" me pega el script todo en un bloque en lugar de de guardar el aspecto original con las tabulaciones y saltos de linea?

Desués de rectificarlo manualmente, e intentar arrancar el script me da un serie de errores y para, ¿podria ser porque el script está mal formateado?

estos son lo errores:

[miguel@81-202-105-112 ~]$ ./convert-filenames-to-utf8.pl
./convert-filenames-to-utf8.pl: line 4: use: command not found
./convert-filenames-to-utf8.pl: line 5: use: command not found
./convert-filenames-to-utf8.pl: line 6: syntax error near unexpected token `('
./convert-filenames-to-utf8.pl: line 6: `use POSIX();'
[miguel@81-202-105-112 ~]$

Saludos y gracias



Gravatar de pacho

# 24115 Eso es porque esos editores

Eso es porque esos editores están de forma predeterminada preparados para poner ellos el salto de línea (seguro que hay una forma de cambiarlo).

Un editor muy bueno para estas cosas es por ejemplo "vim", que tiene como GUI "gvim".

Yo es que no uso kwrite ni kate, seguro que hay por aquí gente que los conoce mucho más :-)

Saludos


¡BUGs!

JID: pacho@jabber-hispano.org
El Blog de Pacho



Gravatar de sebelk

# 24274 Lo copio en vim y....

Tengo el mismo problema.... me pega todo en una misma línea

--
Sergio Belkin
Soluciones Informáticas Open Source
Mandriva Authorized Solutions Provider
http://www.openkairos.com
----------------------------------------

--
Sergio Belkin
http://www.openkairos.com
----------------------------------------



Gravatar de sebelk

# 24276 Un woorkaround...

No es elegante pero funciona:

Lo que hice fue pegarlo en el propio Writer del OpenOffice.org y guardarlo como archivo txt. Ahí me tomó bien los saltos de línea...

Salu2!!

--
Sergio Belkin
Soluciones Informáticas Open Source
Mandriva Authorized Solutions Provider
http://www.openkairos.com
----------------------------------------

--
Sergio Belkin
http://www.openkairos.com
----------------------------------------



Gravatar de sebelk

# 24277 workaround quise decir :)

--
Sergio Belkin
Soluciones Informáticas Open Source
Mandriva Authorized Solutions Provider
http://www.openkairos.com
----------------------------------------

--
Sergio Belkin
http://www.openkairos.com
----------------------------------------



Gravatar de luismago

# 24123 Éste es el enlace directo a

Éste es el enlace directo a la descarga del script, para los que tengan algún problema en copiar/pegar:

convert-filenames-to-utf8.pl

Espero que os sea de utilidad.

Saludos,
luismago

-- 
  JID: luismago@jabber.org

Si se busca el triunfo como sea, se vive el drama de tener que ganar.

Saludos,
luismago

-- 
  JID: luismago@jabber.org

Ceterum censeo Carthaginem esse delendam. -Marco Porcio Catón



Gravatar de picueck

# 24139 Gracias

Muchas gracias



Gravatar de walvi

# 37141 Gracias también por el link del script

Baje el script, lo ejecute soluciono el problema pero no en caso del "mc" que me sigue poniendo "aa" en vez de la división normal por líneas cortadas.

De todas maneras muchas gracias.
Cual puede ser el problema de "MC"?



Gravatar de Ximo Bernà

# 25282 Desafortunadamente no va :-(

Copio el script en mi home.
Lo ejecuto y:

./convert-filenames-to-utf8.pl
converting file names from LC_CTYPE=ca_ES to LC_CTYPE=ca_ES.UTF-8 starting from directory /root

Sin embargo tengo todos los nombres con tildes llenos de cuadraditos...

Ximo Bernà

Ximo Bernà

Linux user #446002
Mi blog



Gravatar de luismago

# 25294 Da la impresión de que lo

Da la impresión de que lo estás ejecutando como root, ya que te pone starting from directory /root, que es el directorio $HOME de root.

Ejecútalo con tu usuario. Todo es porque el programa usa la variable de entorno $HOME para determinar el directorio $HOME (perdón por la perogrullada) y esa variable se fija para cada usuario a su home respectivo. Y si eres root, la variable se fija a /root, cosa que no es lo que quieres (aunque no debería dañar ningún archivo, no te preocupes)

Saludos,
luismago

-- 
  JID: luismago@jabber.org

Si se busca el triunfo como sea, se vive el drama de tener que ganar.

Saludos,
luismago

-- 
  JID: luismago@jabber.org

Ceterum censeo Carthaginem esse delendam. -Marco Porcio Catón



Gravatar de Ximo Bernà

# 25303 Gracias luismago!

Efectivamente lo hacía desde root porque pensaba que era ese el problema al principio... Cree el ejecutable con nombre conver. en vez de convert. ;-D
Me ha cambiado todo..., lo que es mío, que es mucho. Pero lo que me copié de otro lado me lo ha dejado como estaba...
Gracias de todas formas.
FUNCIONA!

Ximo Bernà

Ximo Bernà

Linux user #446002
Mi blog



Gravatar de Kalvy

# 27670 convmv

Estaba echando un ojo a las notas de publicación en inglés cuando vi que añadieron una nueva sección relacionada con la migración a Unicode.

En el repositorio contrib está el paquete convmv que parece que cumple la misma funcionalidad que el script aquí mencionado. Eso sí, no sé cuál de los dos es mejor, ni sus funcionalidades ni nada. Lo comento por si a alguien le apetece investigar ;)



Gravatar de Mauricio Pacheco

# 57014 Ha funcionado en 2 PCs

Hola en el post: http://blogdrake.net/node/12805, solicitan esta misma ayuda y funciono lo que a mí, así que a probar como les va:

Solución:

Ir al "Centro de Control Mandriva Linux"--> "Sistema"--> Administrar la Localización del Sistema"--> "Avanzada", allí marcar o desmarcar la casilla "Codificación (no UTF-8) para compatibilidad antigua"--> "Siguiente"--> "Siguiente"--> "Aceptar", salir del usuario, entrar de nuevo y listo.

Espero a todos les funcione.

Mauricio Pacheco M.
Manager Information System
http://www.informaticamp.tk

Registered user #419099
http://counter.li.org/

Mauricio Pacheco M.
Manager Information System
http://www.quantum-ai.tk

Usuario: Mageia2 64 bits
Escritorio: KDE

Registered user #419099
http://linuxcounter.net/



Gravatar de drakedalfa

# 57020 ...

¿Has visto la fecha del post que estas respondiendo?. Creo que no. Cierro el hilo.

--
¿Quien es Jesucristo?

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.