S alquitrán o Star es un programa de línea de comandos de código abierto que puede comprimir / archivado muchos archivos en una sola cinta o disco de archivo. También es capaz de restaurar archivos individuales desde el archivo generado.
S tar incluye un FIFO para la velocidad, el apoyo de varios volúmenes, un comparador de patrón, la capacidad de archivar archivos dispersos, reconocimiento automático orden de bytes, la detección automática de formato de archivo, compresión y descompresión de archivos automática, archivo remoto, así como otras funciones especiales que permiten la aplicación que se utilizará para las copias de seguridad completas del sistema.
S tar también incluye `rmt", una versión verdaderamente portátil del servidor de cintas remoto que soporta la operación remota entre diferentes sistemas operativos y arquitecturas de máquinas, así como un portátil `mt 'programa de control de la unidad de cinta.
S alquitrán es la implementación más rápida conocida de un archivador tar, incluso más rápido que ufsdump en casi todos los casos
¿Qué hay de nuevo en esta versión:.
< ul>
Encuesta
¿Qué hay de nuevo en la versión 1.5.2:
- Trate de hacer inmune estrella contra las señales que aparecen mientras abrir un archivo de un sistema de archivos de red.
- Que la estrella FIFO manejar mejor la operación de cambio de los medios de comunicación al final de un volumen de cinta en múltiples volúmenes modo de crear.
- Permita estrella para detectar automáticamente el & quot; EOF & quot; condición en un disco sin procesar al escribir en varios volúmenes modo de crear. ENXIO se ha añadido como un alias para EFBIG y ENOSPC.
- La página de manual star.4 se mejoró.
- star_sym.c ahora utiliza O_SEARCH para la apertura de directorios.
- estrella / longnames.c añade más soluciones contra desbordamiento de búfer incorrecto aborta de gcc.
- estrella / extract.c ahora utiliza el acceso (nombre, F_OK) en lugar de acceso (nombre, 0)
- estrella ahora sólo establece manejadores de señales para las señales existentes para apoyar MSC
- estrella fija un error tipográfico en dumpdates.c que ha golpeado en WIN-DOS porque el rebaño () no está presente
- estrella comprueba ahora HAVE_FSYNC para apoyar MSC
- estrella :: findinfo.c ahora comprueba si existe stat.st_blksize
- estrella / dumpdates.c funciona en torno a un problema con LOCK_EX / LOCK_EX / LOCK_UN definido aunque la llamada flock () ya no existe.
- Nuevo (previamente faltante) páginas de manual: BSH / pfbsh.1 sh / bosh.1 sh / jsh.1 sh / pfsh.1 etiqueta mt / mt.1 scgskeleton / scgskeleton.1 / label.1 estrella / USTAR. 1 star_sym / star_sym.1 ved / nov-e.1 ved / nov-W.1
- estrella ahora es compatible con el reconocimiento automático de xz (1) archivos comprimidos y ofrece una nueva opción -xz
- estrellas ofrece un nuevo comportamiento:
- Un archivo tar creado con & quot; protagonizar -c -dump -meta ... & quot; no incluye el contenido de los archivos sin formato, pero sólo los metadatos. Con & quot; estrella -c -xmeta & quot; estos archivos pueden ser extraídos como 0 por archivos de tamaño en caso de que esto no sobrescribir los archivos existentes. Estrella apoya ahora & quot; protagonizar -x -xmeta -fore hoyos & quot; para extraer estos archivos como archivos del tamaño original, pero como archivos dispersos sin ningún dato de su interior. Esto es suficiente como referencia para -Mirror wget.
- La página man star / spax.1 corrigió un error tipográfico.
- estrella / header.c ahora utiliza una nueva estructura de & quot; ndbuf & quot; que define un NameLength de 101 en lugar de 100 con el fin de ser capaz de acceder al elemento 101a en las matrices sin acceder a un aray fuera de límites.
- Se ha corregido un error tipográfico en estrella / buffer.c que causó estrella para un volcado de núcleo en Linux con -mulvivol -c debido a la distribución de la memoria poco común encontrado en Linux.
- Gestión de búfer La estrella -multivol ahora mallocs menos memoria. Antes de que malloc () d del mismo tamaño que el tamaño FIFO, ahora sólo malloc () s 2 * bufsize
- estrella -Encontrar -c ahora es interrumpible por ^ C
- estrella -x -U -k ahora funciona tan bien como estrella -x -U -keep de edad
- Algunas correcciones de errata en la página hombre star.4
- Estrella opción -sparse -force hoyos ahora archiva todos los archivos como archivos dispersos en caso de que al menos contienen 512 bloques de bytes alineados de nulos. Gracias a markk@clara.co.uk
- -Encontrar estrella ahora elimina líder & quot; ./& quot; en nombres de archivo como estrella hace en otros casos.
- -r estrella / -u depende ahora correctamente en el viejo tipo de formato de archivo.
- Estrella añade un nuevo -lzip opción y soporte automatizado para reconocer lzip archivos comprimidos. Gracias a markk@clara.co.uk
- estrella ahora acepta un comando como:
- estrella -c -onull -Encontrar. -ls
- ya que no hay salida de archivo de salida estándar que podría mezclarse con la salida -ls
- Se ha corregido un error en libfind / walk.c (llamando strcatl () con último parámetro 0 en lugar de (char *) 0)
- libfind chocó a la versión 1.5
- Nueva libfind archivo / find_tok.h para separar los nombres de fichas del resto de la aplicación.
- Definiciones simbólicas Movido desde find.c a find_tok.h
- El -perm primaria ahora implementa una nueva característica:
- -perm + modo se evaluará como true si alguno de los bits puestos en modo están situados en los bits de permiso fro un archivo.
- Un error con -exec introducido con el uso de vfork () en lugar de tenedor () se fijó. La sustitución de la cadena & quot; {} & quot; ahora funciona correctamente de nuevo, incluso si se ha cambiado la ubicación de la ruta en la memoria durante un realloc ().
- Nuevos operadores primarios: -amin obsoleto - sólo para GNU encontrar compatibilidad -cmin obsoleto - sólo para GNU encontrar compatibilidad -mmin obsoleto - sólo para GNU encontrar compatibilidad -empty TRUE cero de tamaño de archivos sin formato o vacía programa de directorio -execdir [argumento. ..] \; -fls lista de archivos de archivos similar a 'ls -ilds' en 'file' (siempre TRUE) nombres de los archivos de impresión de archivos -fprint línea separados en 'file' (siempre TRUE) nombres de los archivos de impresión de archivos -fprint0 Nul separados en 'file' (siempre espacio VERDADEROS) Archivo -fprintnnl nombres de los archivos de impresión separada en 'file' (siempre TRUE) glob -ilname TRUE si el nombre de enlace simbólico coincide glob cáscara -ilpat patrón TRUE si el nombre de enlace simbólico coincide glob patrón -iname TRUE si componente de trazado coincide glob cáscara -ipat patrón TRUE si componente de trazado coincide con el patrón -Ivía glob TRUE si la ruta completa coincide glob cáscara -ippat patrón TRUE si la ruta completa coincide con patrón -okdir programa [argumento ...] \; nombres de los archivos de impresión -print0 Nul separan a la salida estándar (siempre TRUE) -executable TRUE si el archivo es ejecutable por Real ID de usuario de proceso -readable TRUE si el archivo es legible por Real ID de usuario de proceso -writable TRUE si el archivo se puede escribir por id de usuario real de proceso
- libfind ya no sale del proceso en treewalk () en caso de que las cadenas de ruta no podrían asignarse.
- libfind :: walkclose () ahora libre () s de las estructuras internas de datos en caso de un usuario que no llama treewalk () (por ejemplo, -x estrella)
- El defltcntl () en libdeflt está trabajando y permite seleccionar un modo de mayúsculas y minúsculas.
- Nueva función defltsect () en libdeflt permite crear subsecciones en los archivos de configuración. Estas subsecciones necesitan ser nombrados: & quot; [nombre-sección] & quot; y el '[' deben estar al principio de una línea.
- Soporte para & quot; pcc & quot; en Solaris x86 se añadió como un primer paso. El compilador de C & quot; pcc & quot; http://pcc.ludd.ltu.se/ se basa en el portátil C-Comppiler de AT & T a partir de finales de 1970. Es bajo BSDL y por eso ofrece compilación con un entorno de compilación realmente libre.
- Tenga en cuenta que debido a un error del PCC, los resultados de autoconf para soporte de archivos grandes son incorrectos. A menos que se edita el aum archivo / i386-sunos5-pcc / xconfig.h y corregir manualmente el archivo que contiene lo siguiente:
- #define _FILE_OFFSET_BITS 64 / * # de bits en off_t si ajustable * /
- Usted no conseguirá trabajando soporte de archivos grandes con pcc.
- Soporte para más Sistema operativo seguirá después de los problemas en el compilador se han resuelto.
- conf / mkdep-aix.sh llama & quot ahora; cc -M -qsyntaxonly & quot; en lugar de & quot; cc -M -E & quot; como el C-preprocesador IBM no le gusta #pragma débil a = b, aunque el compilador soporta.
- Se ha añadido soporte para FreeBSD / x86_64
- Nueva prueba autoconf para las marcas de tiempo de nanosegundos en AIX.
- conf / mkdep-aix.sh fue cambiado para evitar advertencias para #pragma débil a = b como el C-compilador IBM llama un no & quot; #pragma débil & quot; cpp cuando se le llama con -E
- include / Schily / stat.h ahora es compatible con las marcas de tiempo nonosecond en struct stat en AIX.
- include / Schily / stat.h ahora soporta struct stat.st_atime_n apoyo nanosegundo AIX.
- Tratando de añadir soporte para 32 bits en la compilación más reciente versión de Mac OS X a través smake CCOM = CC32 Esto sólo funciona si el soporte para el desarrollo de 32 bits está instalado en Mac OS X.
- Tratando de añadir soporte para 32 bits compilación de nueva versión de Linux a través smake CCOM = CC32 Esto sólo funciona si el soporte para el desarrollo de 32 bits se instala en Linux.
- Nuevos prueba comprueba autoconf si fnmatch () tiene un FNM_IGNORECASE trabajo
- Las nuevas pruebas de autoconf para apoyar locales multibyte con estado mbsinit () mbrtowc () wcrtomb ()
- Las nuevas pruebas de autoconf para wctype_t mbstate_t
- Las nuevas pruebas de autoconf para basename () dirname () strndup () wcsndup ()
- include / Schily / wchar.h mejorado para soportar mbrtowc () y wcrtomb ()
- include / Schily / regex.h añadió
- include / Schily / libgen.h añadió
- Nueva prueba autoconf para strlcat () wcslcat () strnlen () wcsnlen ()
- Nueva prueba autoconf para strndup () wcsndup ()
- fnmatch libschily () ahora soporta FNM_IGNORECASE
- fnmatch libschily () ahora es compatible con caracteres de varios bytes
- libschily: nuevos archivos strlcat.c wcslcat.c strnlen.c wcsnlen.c strndup.c wcsndup.c basename.c dirname.c
- Un nuevo algoritmo en libschily strncat.c strncmp.c strncpy.c strnlen.c wcsncat.c wcsncmp.c wcsncpy.c wcsnlen.c hace que el código más rápido y más pequeño.
- Conf-archivos en / etc / default estén instaladas 0644
- Las páginas man son ahora por defecto instalado en $ (INS_BASE) / share / man El directorio & quot base; cuota de & quot; puede ser cambiado por titulándose
- smake DEFMANBASE = algo
- README.compile ahora menciona:
- INS_RBASE = conjunto diferente & quot; raíz & quot; ruta de instalación DEFMANBASE = Establecer directorio base diferente hombre STRIPFLAGS = -s Gaza todos los binarios con & quot; make install & quot; RUNPATH = Sobrescribir ELF RUNPATH DEFUMASK = Programa diferentes permisos por defecto para la creación de directorios DEFINSUMASK = Establecer diferentes permisos por defecto para la creación de directorios en la ruta de instalación
- Las páginas man son ahora por defecto instalado en $ (INS_BASE) / share / man El directorio & quot base; cuota de & quot; puede ser cambiado por titulándose
- Todos Makefile.dfl ahora detectar si / etc / default / * ya existe
- Las macros XARCH_GEN y XARCH_OPT están ahora en REGLAS / cc-Sunpro * .rul
- El archivo de inclusión include / Schily / ccomdefs.h ahora permite desactivar los printf () comprueba formato para GCC con que se necesita con el fin de permitir la estrella para compilar en el Solaris DE CONSOLIDACIÓN como Identificación del GCC demasiado tonto para el -DNO_PRINTFLIKE Este printf () extensiones.
- libschily /? Eterrno.c ya no sobrescribir la definición _TS_ERRNO para pasar las constrints de compilación de la versión Solaris EN consoliation.
- Varios nuevos símbolos globales en el archivo de asignaciones para libschily / libschily-mapvers
- libschily / wcsndup.c había frgotten código y todavía tenía implementar internaly strndup ()
- librmt.so ahora incluye libsocked en la etiqueta ELF NECESARIO
- Todas incluyen archivos (incluso los creados por autoconf) ahora están protegidos contra la inclusión múltiple.
- Nueva prueba autoconf para pathconf () y fpathconf ()
- Los archivos de mapas enlazador ahora se procesan a través de & quot; cpp & quot; (O $ CC -E) y el resultado se almacena en $ (ARCHDIR). Esto permite tener un solo mapa enlazador fuente de archivos para todas las plataformas.
- Nueva prueba autoconf para un cpp de trabajo.
- Nueva prueba autoconf para / dev / stdin, / dev / stdout, / dev / stderr, / dev / fd / 0, / dev / fd / 1, / dev / fd2
- Las nuevas pruebas de autoconf para: qecvt () qfcvt () qgcvt () _ldecvt () _ldfcvt () _ldgcvt () _ldecvt_r () _ldfcvt_r () _ldgcvt_r () qeconvert () qfconvert () qgconvert () necesario para el soporte doble de largo.
- Todos los archivos de mapas enlazador se han modificado para permitir dependiente de la plataforma # de ifdef
- libschily ahora por defecto renombra getline (), fgetline () y fexec * () en js_getline (), js_fgetline () y js_fexec * (). Esto era necesario porque el comité estándar POSIX ignorado reglas básicas POSIX no definir funciones que están en conflicto con las funciones publicados existentes. Las funciones de linschily han estado en el público desde hace más de 25 años y las funciones definidas por POSIX.1-2008 incluso violar las reglas de nomenclatura POSIX. El POSIX fexec * () funciones haría por ejemplo han de ser llamado correctamente fdexec * ().
- Los programas existentes pueden mantener el nombre oficial getline (), fgetline () y fexec * (), ya que son por defecto #defined a los nuevos js _ * (nombres). Para desactivar esta conveniencia, añadir:
- NO_SCHILY_GETLINE #define Para desactivar Schily getline (), fgetline () NO_SCHILY_FEXEC #define Para desactivar Schily fexec * () NO_SCHILY_FSPAWN #define Para desactivar Schily fspawn * ()
- Libschily ahora tiene nueva & quot; a largo doble & quot; funciones de apoyo: qftoes () y qftofs ()
- Libschily ahora es compatible con un punto decimal dependend locale para imprimir números de punto flotante.
- Libschily ahora es compatible para imprimir números dobles largos utilizando el formato () printf portátil (aplicación) en base. Si esto no funciona para su plataforma, o si esto no funciona correctamente para su plataforma, por favor informe. Esto era necesario para salir nueva & quot; od & quot; aplicación.
- La opción de analizar getargs implementación () / getfiles () desde libschily ahora admite combinar un solo carácter banderas booleanas incluso en caso de que la cadena de opciones menciona a llamar a una función de devolución de llamada si se ha encontrado una opción válida. Esto era necesario para salir nueva & quot; od & quot; aplicación.
- filereopen () desde libschily ya no llama a open () internamente, siempre y cuando no hay necesidad de crear o truncar el archivo.
- include / Schily / wchar.h ahora incluye un workyround para plataformas que no tienen wcwidth ().
- findinpath de libschily () ahora incluye un nuevo parámetro de ruta para permitir utilizar la función de BSH.
- fnmatch ahora está siempre disponible como js_fnmatch ()
- Nueva prueba autoconf para _qecvt () _qfcvt () _qgcvt () y _qecvt_r () _qfcvt_r () _qgcvt_r () en AIX
- libschily / getexecpath.c nueva
- include / Schily / nlsdefs.h ahora incluye macros _ (s) y __ (s) para apoyar gettext () y xgettext (1)
- Desactivar reglas de sufijo simples y reglas Sufffix en smake a speedup construye
- Ha añadido un comentario en REGLAS / rules.rdi que ya no se necesita esta regla. Use REGLAS / rules.dir en todos los casos.
- Los nuevos archivos de configuración en el makefilesystem Schily para:
- - * BSD en amd64
- - MacOS X en amd64
- - kfreebsd (Debian en un kernel de FreeBSD)
- - Android
- El Schily makefilesystem ahora soporta CC_COM para todas las plataformas que permiten sobrescribir el comando de bajo nivel para el compilador C.
- El makefilesystem Schily ahora soporta CC ++ _ COM para todas las plataformas para permitir sobrescribir el comando de bajo nivel para el C ++ -. Compilador
- Mingw ahora por vínculos predeterminados contra -lminwg32 lugar de -lmgw32
- Mac OS X ahora por vínculos predeterminados contra -lgcc_s.1 lugar de -lgcc
- Acelerar la generación de dependencia para cl.exe poniendo en común algunos comandos sed en una sola llamada sed
- Se ha corregido un error con la generación de dependencia para HP-UX
- El makefilesystem Schily restructuresd algunas dependencias para permitir ejecutar un make paralelo.
- Android no es POSIX (por no definir varias funciones como funciones de libc como es requerido por POSIX) porque intenta definir muchas funciones que forman parte de la norma como macros en línea en sólo incluyen archivos. Esto rompe autoconf, así que necesitábamos para volver a escribir algunas pruebas (por ejemplo, para getpagesize, tcgetpgrp, tcsetpgrp)
- El sistema autoconf Schily ha sido mejorado para soportar compilación cruzada. Schily autoconf está basado en GNU autoconf y GNU autoconf no soporta compilación cruzada, ya que necesita para ejecutar secuencias de comandos en el sistema de destino para algunas de las pruebas.
- El & quot; configure & quot; script que se entrega con el sistema Schily makefile corre 718 pruebas y 68 de ellos necesita que se ejecute en el sistema de destino.
- El sistema autoconf Schily ahora es compatible con un método para ejecutar estas 65 pruebas de forma nativa en un sistema de destino. O se necesita una máquina con las características de acceso remoto o necesita un emulador con un método para copiar archivos en el sistema emulado y ejecutar binarios en el sistema emulado como por ejemplo, el emulador de Android.
- En este momento entregar tres guiones para & quot; remota & quot; ejecución de los programas del sistema de destino:
- runrmt_ssh ejecuta los comandos eliminan a través de ssh runrmt_rsh ejecuta los comandos eliminan a través runrmt_android rsh ejecuta los comandos eliminan a través del puente de depuración
- Si necesita ejecutar remotamente programas en un sistema que no sea compatible con uno de allí tres guiones, tiene que modificar una de ellas para satisfacer sus necesidades.
- Para habilitar Cruz Compilación utilizar las siguientes variables de entorno:
- CONFIG_RMTCALL = Configurar para apuntar a un script que hace la ejecución remota, por ejemplo:
- CONFIG_RMTCALL = `pwd` / conf / runrmt_ssh
- CONFIG_RMTHOST = Configurar para que apunte al servidor remoto, por ejemplo:
- CONFIG_RMTHOST = nombre de host o CONFIG_RMTHOST = usuario @ nombre de host
- usar un maniquí si te gusta usar algo como para el emulador de Android.
- CONFIG_RMTDEBUG = Ajuste a algo que no sea nulo con el fin de permitir que la ejecución remota de marca guión comands remotas. Esto dará lugar a mensajes de configure como:
- bits de comprobación en número menor de dispositivo ... REMOTO 8
- Nota que smake incluye características automake que recuperan automáticamente la información de ID del sistema. Por esta razón, es necesario sobrescribir macros relacionadas desde la línea de comandos si te gusta hacer una compilación cruzada.
- macros maquillaje relacionados:
- K_ARCH = # (sun4v) Kernel ARCH lleno de uname -m / arch -k M_ARCH = # (sun4) Máquina de llenado de arco P_ARCH = ARCH # (SPARC) CPU llena de uname -p / mach OSNAME = # sunos, linux, .... OSREL = # 5.11 OSVersion = # snv_130 CCOM = # genérico nombre del compilador (por ejemplo, & quot; gcc & quot;) CC_COM = # compilador para llamar (nombre + básicos args)
- ARCH = sobrescribe M_ARCH y P_ARCH
- Se suele suffucient configurar ARCH y OSNAME.
- Para utilizar un entorno de compilador cruzado en lugar de un compilador nativo, establezca el hacer macro CC_COM a algo diferente que & quot; cc & quot;.
- Si está en Linux y como para compilar para Android, haga lo siguiente:
- 1) estableció según CC a las instrucciones de la cadena de herramientas de compilador cruzado
- 2) establecer CONFIG_RMTCALL / CONFIG_RMTHOST, por ejemplo: setenv CONFIG_RMTCALL `pwd` / conf / runrmt_android setenv CONFIG_RMTHOST NINGUNO
- 3) llamada smake:
- smake ARCH = OSNAME ARMv5 = CCOM linux = gcc & quot; CC_COM = $ CC & quot;
- Varios programas no realizará más pruebas para HAVE_DEV_ * pero para HAVE__DEV_ * como lo hicimos pasar de pruebas escritas a mano de / dev / tty, / dev / null y similar a AC_CHECK_FILES (/ dev / tty / dev / null / dev / zero )
- Se agregó el soporte para Pyro (un clon de sílaba). Gracias a Flemming H. Sorensen
- Mejor soporte para sockets Win32 utilizando cl.exe
- Evite problemas con los prototipos no estándar para enlace () unlink () read () y write () de cl.exe
- Añadir soporte para semi-estática (preconfigurado) incluye archivos para Android: include / Schily / armv5tejl-linux-gcc / xconfig.h
- Nuevo incluyen archivos incluyen / Schily / errar _ *. H se utilizan para encapsular #ERROR declaraciones CPP que de otro modo siempre prevenir compilación con K & R compiladores.
- Se ha añadido una solución para un compilador LLVM bug que crea código con bucles sin fin en algunos casos.
- Libschily está ahora vinculada contra $ (LIB_INTL) cuando un compartido se crea libschily.
- Evite las advertencias de cl.exe para libschily / gettimeofday.c
- Los archivos de configuración específicos del programa maquillaje para la Schily Makefilesystem REGLAS / mk-.id (por SunPro make), NORMAS / REGLAS mk-smake.id / mk-gmake.id ahora incluyen definiciones de las macros:
- ESPACIO Un único carácter de espacio ('') NUMBER_SIGN El número ASCII cantar ('#')
- Tenga en cuenta que el estándar POSIX exija lo contrario, el programa make que no podrá tener el '#' aparecerá en la no-comentario secciones de Makefiles.
- Trate de evitar un cambio imprudente en el windef.h archivo desde Cygwin-1.7.17 (otoño de 2012) en relación con el tipo BOOL que hace windefs.h de la reciente Cygwin ya no es compatible con el archivo original de Microsoft. La solución está en include / Schily / windows.h
- Gracias a Alain Hoang, Thomas Plank y otros para la presentación de informes y ayudar a conseguir una solución para el problema mencionado arriba
- Mejor comentario en libschily / comerr.c para ayudar a entender el código de salida () doblar a 8 bits y cómo se puede evitar.
variables de entorno
Comentarios que no se encuentran