1 votos

Cómo interpretar / diagnosticar el mensaje de error pdftk

Contexto: Catalina (zsh es por defecto)

Las instrucciones de soltar y arrastrar se siguieron por: http://hildstrom.com/projects/bates-number-a-pdf/#mac

enter image description here

Los intentos de seguir el procedimiento primero regresaron:

enter image description here

La terminal volvió entonces:

enter image description here

ctivityReport.pdf"; exit
user@JUPITER ~ % '/private/var/folders/5s/5j5833_j41q5jw5qg42h3h6w0000gn/T/AppTranslocation/596EF513-EE76-40D6-A64E-E9667AEAF23F/d/bates-label-a-pdf.app/'../bates-label-a-pdf.sh "/Users/user/Desktop/Exhibits_ActivityReport.pdf"; exit
zsh: no such file or directory: /private/var/folders/5s/5j5833_j41q5jw5qg42h3h6w0000gn/T/AppTranslocation/596EF513-EE76-40D6-A64E-E9667AEAF23F/d/bates-label-a-pdf.app/../bates-label-a-pdf.sh

[Process completed]

El objetivo es entender por qué el procedimiento no devolvió el archivo .pdf esperado y cualquier remedio procesable. Sospecho que puede haber un ajuste de seguridad que puede necesitar ser configurado. Gracias

Resultados de las pruebas PION

según las instrucciones de pion para superar el problema de AppTranslocation:

user@JUPITER bates-label-a-pdf % xattr -rd com.apple.quarantine /Users/user/Desktop/bates-label-a-pdf

CPU = Intel i3770 (no M1). Ejecución devuelta Bad CPU type in executable errores:

user@JUPITER ~ % '/Users/user/Desktop/bates-label-a-pdf/bates-label-a-pdf.app/'../bates-label-a-pdf.sh "/Users/user/Desktop/bates-label-a-pdf/Exhibits_ActivityReport.pdf"; exit
/Users/user/Desktop/bates-label-a-pdf/bates-label-a-pdf.app/../bates-label-a-pdf.sh: line 18: /Users/user/Desktop/bates-label-a-pdf/bates-label-a-pdf.app/../pdftk/bin/pdftk: Bad CPU type in executable
/Users/user/Desktop/bates-label-a-pdf/bates-label-a-pdf.app/../bates-label-a-pdf.sh: line 21: /Users/user/Desktop/bates-label-a-pdf/bates-label-a-pdf.app/../labeling/generate-labeling-pdf: Bad CPU type in executable
/Users/user/Desktop/bates-label-a-pdf/bates-label-a-pdf.app/../bates-label-a-pdf.sh: line 22: /Users/user/Desktop/bates-label-a-pdf/bates-label-a-pdf.app/../pdftk/bin/pdftk: Bad CPU type in executable
mv: /Users/user/Desktop/bates-label-a-pdf/bates-label-a-pdf.app/../labeling/labeling.pdf-compressed: No such file or directory
/Users/user/Desktop/bates-label-a-pdf/bates-label-a-pdf.app/../bates-label-a-pdf.sh: line 26: /Users/user/Desktop/bates-label-a-pdf/bates-label-a-pdf.app/../pdftk/bin/pdftk: Bad CPU type in executable

4voto

rybosome Puntos 1829

tl;dr: Translocación de aplicaciones.

El Etiqueta Bates La solución que enlazaste fue escrita para MacOS 10.7-10.8. En MacOS 10.12 Apple comenzó a restringir las aplicaciones que no son de la Mac App Store para que no ejecuten código sin firmar. En su lugar, MacOS creará una imagen de disco aleatoria, copiará la aplicación en ella y ejecutará la aplicación desde esa imagen. Los recursos externos de los que depende la aplicación no se copian, por lo que si la aplicación espera que se encuentren en una ruta relativa al binario original de la aplicación, verás errores de "archivo no encontrado".

Eso es lo que parece estar ocurriendo en tu caso. Esta es la secuencia:

  1. Has descargado y descomprimido un tarball que contiene bates-label-a-pdf.app , una aplicación sin firma.
  2. Cuando intentabas ejecutar esa aplicación, MacOS la trasladaba a una ruta aleatoria ( /private/var/folders/5s/5j5833_j41q5jw5qg42h3h6w0000gn/T/AppTranslocation/596EF513-EE76-40D6-A64E-E9667AEAF23F/d/bates-label-a-pdf.app/ ).
  3. La aplicación parece ser una envoltura para el bates-label-a-pdf.sh script, que la aplicación esperaba encontrar en el mismo directorio que la propia aplicación, de ahí el ../bates-label-a-pdf.sh especificación de la ruta relativa.
  4. Como MacOS no copió el shell externo script cuando translocó la aplicación, ésta no puede encontrarlo, y obtienes tu " no hay tal archivo o directorio " mensaje.

Una solución es eliminar el com.apple.quarantine atributo de sistema de archivos extendido de la aplicación antes de ejecutarla. Explico esto de forma más extensa en ¿Debo introducir este comando en el Terminal? . El comando en su caso sería:

xattr -rd com.apple.quarantine /path/to/app/location

donde se reemplazaría /path/to/app/location con la ruta real del sistema de archivos a bates-label-a-pdf.app dondequiera que lo pongas. (Según la página web del autor, se supone que es ~/Desktop/bates-label-a-pdf/bates-label-a-pdf.app pero es posible que lo hayas dejado dentro de tu Downloads carpeta en su lugar).


Si tienes curiosidad, aquí está el código script dentro de la aplicación:

AppleScript code for the bates label app

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X