Manualinux
http://www.nvu.com http://www.gimp.org InicioPresentaciónActualizacionesManualesDescargasNoticiasAgradecimientoEnlaces

Entornos GráficosAplicaciones

DesarrolloEmuladoresInternetJuegosMultimediaSistema

Clientes FTP - FileZillaClientes P2P - aMule

Clientes FTP - gFTP




Clientes FTP - gFTP




Copyright

Copyright © José Luis Lara Carrascal  2007-2023   http://manualinux.es



Sumario

Introducción
Características
Instalación
Iniciamos gFTP
Consejos de uso
Enlaces




Introducción

Tras probar la versión GNU/Linux de FileZilla, dudo mucho que alcance algún día el nivel de eficacia, sencillez y rapidez del mejor cliente FTP que existe en estos momentos en este sistema y que es con todos los meritos: gFTP. Es el programa que uso desde que tengo conexión a internet para trabajar con descargas FTP y es el que uso desde que Manualinux existe como proyecto de documentación para subir los archivos al servidor donde está hospedada la web. Lo que en otros programas resulta farragoso (No digo ya el tema del chmod) en gFTP resulta sencillo y yo diría hasta fácil. El proyecto ya no está continuado por su autor y el proyecto derivado, lo podemos encontrar en este enlace



Características  

* Escrito en C con 3 tipos diferentes de interfaz: Texto y GTK+ (2 y 3)
* Soporte de los protocolos FTP, FTPS, FTPSi, SSH2 SFTP (requiere de un cliente de OpenSSH) y FSP
* Soporte de proxy FTP
* Soporte de transferencia de archivos FXP (transfiere archivos entre 2 servidores remotos vía FTP)  
* Diferentes estilos (UNIX, EPLF, Novell, MacOS, VMS, MVS y NT (DOS) de listado de directorios
* Menú de marcadores
* Internacionalización (incluido el idioma español)



Instalación

Dependencias

Herramientas de Compilación


Entre paréntesis la versión con la que se ha compilado gFTP para la elaboración de este documento.

* GCC - (13.2.0) o Clang - (16.0.6)
* Gawk - (5.2.2)
* M4 - (1.4.19)
* Make - (4.4.1)
* Automake - (1.16.5)
* Gettext - (0.22)
* Autoconf - (2.71)
* Bison - (3.8.2)
* Pkg-config - (0.29.2)

Librerías de Desarrollo

* Xorg - (7.7 / xorg-server 21.1.8)
* GLib - (2.74.7)
* GTK+ - (2.24.33)
* OpenSSL- (1.1.1v)
* Readline - (8.2)



Descarga

gftp-2.9.1b.tar.xz  |  gftp_es.diff.gz

Optimizaciones

$ export {C,CXX}FLAGS='-O3 -march=znver3 -mtune=znver3'

Donde pone znver3 se indica el procesador respectivo de cada sistema seleccionándolo de la siguiente tabla:
Nota informativa sobre las optimizaciones para GCC
* La opción '-march=' establece el procesador mínimo con el que funcionará el programa compilado, la opción '-mtune=' el procesador específico para el que será optimizado. 

* Los valores separados por comas, son equivalentes, es decir, que lo mismo da poner '-march=k8' que '-march=athlon64'.

* En versiones de GCC 3.2 e inferiores se utiliza la opción '-mcpu=' en lugar de '-mtune='.
Nota informativa sobre las optimizaciones para Clang
* La opción '-mtune=' está soportada a partir de la versión 3.4 de Clang.

* Los valores de color azul no son compatibles con Clang.

* Las filas con el fondo de color amarillo son valores exclusivos de Clang y, por lo tanto, no son aplicables con GCC.
Valores CPU
Genéricos
Intel
AMD

Optimizaciones adicionales

Optimizaciones adicionales
GCC
Graphite
$ export {C,CXX}FLAGS+=' -ftree-loop-linear -floop-strip-mine -floop-block'
IPA
$ export {C,CXX}FLAGS+=' -fipa-pta'
LTO
$ export AR=gcc-ar RANLIB=gcc-ranlib NM=gcc-nm
$ export {C,CXX}FLAGS+=' -fuse-linker-plugin -flto=auto'
Clang
Polly
$ export {C,CXX}FLAGS+=' -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine'
LTO
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto'
ThinLTO
$ export AR=llvm-ar RANLIB=llvm-ranlib NM=llvm-nm
$ export {C,CXX}FLAGS+=' -flto=thin'
La aplicación de esta optimización es alternativa a la tradicional LTO, a partir de Clang 3.9 y, por lo tanto, no es combinable con la misma.

Parámetros adicionales

Parámetros adicionales de eliminación de avisos en el proceso de compilación
$ export {C,CXX}FLAGS+=' -w'

Establecer la ruta de búsqueda de directorios de librerías en sistemas de 64 bits multiarquitectura
$ export LDFLAGS+=" -L/usr/lib64 -L/usr/local/lib64 -L/opt/gcc13/lib64"
Cada usuario tendrá que establecer la ruta de búsqueda de directorios, en función de la distribución que utilice.

Establecer el uso de enlazador dinámico para Mold
$ export LDFLAGS+=' -fuse-ld=mold'

Establecer el uso de enlazador dinámico para LLD
Clang
$ export LDFLAGS+=' -fuse-ld=lld'
Optimizaciones complementarias LTO/ThinLTO de LLD
$ export LDFLAGS+=' -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt'
Optimizaciones complementarias LTO de LLD
$ export LDFLAGS+=" -Wl,--lto-partitions=$(nproc)"
Optimizaciones complementarias ThinLTO de LLD
$ export LDFLAGS+=" -Wl,--thinlto-jobs=$(nproc)"

Establecer la variable de entorno de uso de compilador para Clang
$ export CC=clang CXX=clang++

Extracción y Configuración  Bloc de Notas Información general sobre el uso de los comandos

$ tar Jxvf gftp-2.9.1b.tar.xz
$ cd gftp-2.9.1b
$ zcat ../gftp_es.diff.gz | patch -Np1
$ ./configure --prefix=/usr

Explicación de los comandos

zcat ../gftp_es.diff.gz | patch -Np1 : Aplica este parche personal que actualiza las locales en español del programa.

--prefix=/usr : Instala gFTP en el directorio principal /usr.

Parámetros de configuración opcionales

--enable-gtk3 : Compila la versión GTK3+ de la interfaz gráfica, se requiere las devel de GTK3. Este soporte es experimental.
--disable-gtkport : No compila la interfaz gráfica.
--disable-textport : No compila la interfaz de línea de comandos.
--disable-ssl : No compila el soporte de OpenSSL.

Compilación

$ make

Parámetros de compilación opcionales

-j$(nproc) : Establece el número de procesos de compilación en paralelo, en función del número de núcleos e hilos que tenga nuestro procesador, tomando como referencia la información mostrada por el sistema con el comando correspondiente. Si nuestro procesador es mononúcleo de un solo hilo, no añadir esta opción.

Instalación como root

$ su -c "make install-strip"

Borrar las locales adicionales instaladas con la utilidad BleachBit

$ su -c "bleachbit -c system.localizations"

Estadísticas de Compilación e Instalación de gFTP

Estadísticas de Compilación e Instalación de gFTP
CPU AMD Ryzen 5 5500
MHz 3593.250 (BoostMax=4457.000)
RAM 32 GB
Sistema de archivos XFS
Versión del Kernel 6.4.8-ml SMP PREEMPT_DYNAMIC x86_64
Modo de frecuencia de la CPU powersave (balance performance)
Versión de Glibc 2.38
Enlazador dinámico LLD 16.0.6
Compilador Clang 16.0.6
Parámetros de optimización -03 -march=znver3 -mtune=znver3 -mllvm -polly -mllvm -polly-vectorizer=stripmine -flto=thin -Wl,--lto-aa-pipeline=globals-aa -Wl,--lto-newpm-passes=memcpyopt
Parámetros de compilación -j12
Tiempo de compilación 5"
Archivos instalados 31
Mostrar/Ocultar la lista de archivos instalados
Ocupación de espacio en disco 844 KB

Consumo inicial de CPU y RAM de gFTP

Consumo inicial de CPU y RAM de gFTP
Programa
CPU RAM
gftp-gtk 0 % 20,3 MB
Para medir el consumo de CPU se utiliza el programa top, y para medir el consumo de RAM se utiliza el script de Python, ps_mem.py, creado por Pádraig Brady, que podemos encontrar en este enlace.

Directorio de configuración personal

~/.gftp Es el directorio de configuración personal de gFTP en nuestro home.
~/.gftp/cache Es el subdirectorio donde se guarda la caché de los listados de los directorios remotos y locales que se muestran en los paneles de gFTP, conviene borrarla de forma manual, porque desde la interfaz del programa no funciona el borrado. De vez en cuando ejecutaremos el comando $ rm -f ~/.gftp/cache/* para que el tamaño de ésta no se haga excesivamente grande.

Desde la utilidad de limpieza del sistema, BleachBit, se puede realizar la operación de borrado de la caché sin tener que recurrir a la línea de comandos.
~/.gftp/bookmarks Es el archivo que almacena los marcadores de gFTP.
~/.gftp/gftprc Es el archivo de configuración personal de gFTP, su edición manual no es necesaria.

Desinstalación como root

1) MODO TRADICIONAL

En el directorio de compilación ejecutamos el siguiente comando:

$ su -c "make uninstall"

2) MODO MANUALINUX

El principal inconveniente del comando anterior es que tenemos que tener el directorio de compilación en nuestro sistema para poder desinstalar el programa. En algunos casos esto supone muchos megas de espacio en disco. Con el paquete de scripts que pongo a continuación logramos evitar el único inconveniente que tiene la compilación de programas, y es el tema de la desinstalación de los mismos sin la necesidad de tener obligatoriamente una copia de las fuentes compiladas.

gftp-2.9.1b-scripts.tar.gz  

$ su
# tar zxvf gftp-2.9.1b-scripts.tar.gz
# cd gftp-2.9.1b-scripts
# ./Desinstalar_gftp-2.9.1b

Copia de Seguridad como root

Con este otro script creamos una copia de seguridad de los binarios compilados, recreando la estructura de directorios de los mismos en un directorio de copias de seguridad (copibin) que se crea en el directorio /var. Cuando se haya creado el paquete comprimido de los binarios podemos copiarlo como usuario a nuestro home y borrar el que ha creado el script de respaldo, teniendo en cuenta que si queremos volver a restaurar la copia, tendremos que volver a copiarlo al lugar donde se ha creado.

$ su
# tar zxvf gftp-2.9.1b-scripts.tar.gz
# cd gftp-2.9.1b-scripts
# ./Respaldar_gftp-2.9.1b

Restaurar la Copia de Seguridad como root

Y con este otro script (que se copia de forma automática cuando creamos la copia de respaldo del programa) restauramos la copia de seguridad como root cuando resulte necesario.

$ su
# cd /var/copibin/restaurar_copias
# ./Restaurar_gftp-2.9.1b



Iniciamos gFTP

Sólo nos queda teclear en una terminal o en un lanzador el comando gftp, y el programa aparecerá en la pantalla, si queremos usar el modo texto tendremos que teclear en una terminal: gftp-text.


Captura gFTP - 1


Captura gFTP - 2




Consejos de uso

* Si queremos seleccionar más de un archivo o directorio podemos hacemos uso de la función de selección de GTK+ mediante la combinación de la tecla Ctrl+clic izquierdo del ratón en el árbol de directorios. 

Si el grupo de archivos a seleccionar es muy extenso, y éste es consecutivo, hacemos clic en el primero a seleccionar y luego Ctrl+Mayús+clic izquierdo del ratón en el último del grupo. Si queremos deseleccionar alguno del grupo, con Ctrl+clic izquierdo del ratón, vamos deseleccionando los archivos indicados.

* Los usuarios que tengan una página web, y la editen siempre de forma local para posteriormente subir los archivos al servidor de turno, es siempre recomendable que los archivos locales aparezcan en gFTP ordenados por fecha de modificación, para poder seleccionarlos en primer lugar, cuando los vamos a subir al servidor remoto. Basta hacer clic en el título de la columna Fecha, para que esto sea posible. La misma operación es aplicable, para poder realizar copias de seguridad, si la página web la editamos de forma remota, y queremos bajarnos los archivos que hemos modificado o creado en el servidor remoto.

* Para no tener que estar siempre metiendo una determinada dirección y dentro de la misma tener que ir haciendo clic hasta llegar a un determinado directorio remoto, es conveniente (que me lo digan a mí) hacer clic sobre el menú de Marcadores >> Añadir marcador, para que éste quede almacenado en los marcadores del programa, y la próxima vez al hacer clic sobre el mismo, nos lleve de forma directa al directorio remoto indicado.

Recordar que todas las entradas de los marcadores son editables desde el mismo menú de los marcadores, haciendo clic en Editar marcadores, que nos abrirá una nueva ventana de diálogo en la que podremos editar estos de forma individual.

* Es también muy conveniente indicar en las preferencias del programa, concretamente en Opciones >> Programa de edición, un editor de texto para poder editar los archivos de forma rémota sin necesidad de tener que subirlos. El programa lo que hace es descargar el archivo de forma temporal y cuando lo hemos modificado, nos pregunta si lo vuelve a subir, lo que nos ahorra la tarea de tener que descargar el archivo y subirlo de forma manual.

* Normalmente los permisos de un directorio remoto suelen estar establecidos en 755 (lectura y ejecución para todos y escritura para el dueño) y para los archivos, 644 (lectura para todos y escritura para el dueño). A continuación (creo que esto es importante) pongo la disposición de la ventana de diálogo de asignación de permisos más comunes cuando trabajamos con un directorio remoto del que somos propietarios (esto es un decir, como mucho inquilinos). Recordar que esta ventana de diálogo se abre al seleccionar un directorio o archivo y al desplegar el menú con el clic derecho del ratón y seleccionar Permisos....

Captura gFTP - 3
chmod 755

Captura gFTP - 4
chmod 644

Captura gFTP - 5
chmod 777

Captura gFTP - 6
chmod 444

El 777 se suele utilizar en galerías de imágenes como las de Coppermine para permitir que todos los usuarios autorizados puedan escribir en el directorio de las imágenes de la galería. El 444 es recomendable usarlo para aquellos archivos de configuración críticos que se suelen editar de forma manual para evitar un borrado accidental de estos. Tener en cuenta que al establecer los permisos en sólo lectura, no podremos borrar el archivo o directorio en cuestión hasta que no los volvamos a cambiar y le volvamos a asignar permisos de escritura.

* Y, por último, destacar la posibilidad de aplicar filtros a la hora de trabajar con los archivos. Esto es muy sencillo y basta seleccionar en el menú que desplegamos con el clic derecho del ratón, la entrada Cambiar filtro, y añadir al comodín la extensión o palabra clave oportuna que haga referencia a un determinado grupo de archivos. No olvidar volver a dejar el comodín como estaba cuando hayamos finalizado con la tarea, ya que de lo contrario no nos saldrá ningún archivo o directorio en la ventana del árbol de directorios en la que estemos trabajando excepto los coincidentes con el filtro utilizado. Lo ideal sería que los archivos coincidentes con el filtro aparecieran seleccionados y el resto no desapareciera visualmente como sucede con el sistema de filtrado que utiliza gFTP.

Captura gFTP - 7



Enlaces  


https://github.com/masneyb/gftp >> Enlace al proyecto en GitHub.


Foro Galería Blog


Actualizado el 05-08-2023

Clientes FTP - gFTP

Clientes FTP - FileZillaClientes P2P - aMule