Arch Fakeroot Binary Options


Arch Build Contenido del sistema ¿Qué es el Arch Build System? El Arch Build System es un sistema similar a los puertos para construir y empaquetar software desde el código fuente. Mientras que pacman es la herramienta especializada de Arch para la administración de paquetes binarios (incluyendo paquetes construidos con el ABS), ABS es una colección de herramientas para compilar fuentes en paquetes instalables. pkg. tar. xz. ¿Qué es un sistema de puertos Ports es un sistema utilizado por BSD para automatizar el proceso de creación de software desde el código fuente. El sistema utiliza un puerto para descargar, desempaquetar, parchear, compilar e instalar el software dado. Un puerto es simplemente un directorio pequeño en la computadora de los usuarios, nombrada después del software correspondiente a ser instalado, que contiene algunos archivos con las instrucciones para construir e instalar el software desde el origen. Esto hace que la instalación de software tan simple como escribir make o make install clean dentro del directorio ports. ABS es un concepto similar ABS se compone de un árbol de directorio (el árbol ABS) que residen bajo / var / abs. Este árbol contiene muchos subdirectorios, cada uno dentro de un nombre de repo y cada uno nombrado por su paquete respectivo. Este árbol representa (pero no contiene) todo el software oficial de Arch. Recuperable a través del sistema SVN. Puede referirse a cada subdirectorio denominado paquete como un ABS, de la misma manera que uno se referiría a un puerto. Estos ABS (o subdirectorios) no contienen el paquete de software ni la fuente, sino un archivo PKGBUILD (ya veces otros archivos). Un PKGBUILD es un simple script de compilación de Bash, un archivo de texto que contiene las instrucciones de compilación y empaque, así como la URL del tarball de origen apropiado que se descargará. (El componente más importante de ABS son PKGBUILDs.) Al emitir dentro del comando ABS makepkg, el software se compila primero y luego se empaqueta dentro del directorio de compilación. Ahora puede usar pacman (el administrador de paquetes Arch Linux) para instalar, actualizar y eliminar su nuevo paquete. Resumen del ABS El ABS puede utilizarse como un término paraguas ya que incluye y depende de varios otros componentes, por lo tanto, aunque no técnicamente precisa, el ABS puede referirse a las siguientes herramientas como un conjunto de herramientas completo: Árbol ABS La estructura de directorio ABS que contiene los archivos necesarios para construir todos Paquetes oficiales (pero no los propios paquetes ni los archivos fuente del software). Está disponible en los repositorios svn y git y el script abs (desde el paquete abs) los descarga usando rsync en / var / abs / en su máquina (local). En el sistema local, el árbol contiene subdirectorios para cada repositorio especificado en /etc/abs. conf. Que a su vez contienen un subdirectorio para cada paquete. Nota: El árbol de ABS se sincroniza una vez al día, por lo que puede quedar a la zaga de lo que ya está disponible en los repositorios. PKGBUILD Un script Bash que contiene la URL del código fuente junto con las instrucciones de compilación y empaquetado. Makepkg shell herramienta de comandos que lee el PKGBUILDs, descarga automáticamente y compila las fuentes y crea un archivo. pkg. tar de acuerdo con la matriz PKGEXT en makepkg. conf. También puede utilizar makepkg para crear sus propios paquetes personalizados de fuentes AUR o de terceros. Consulte Creación de paquetes para obtener más información. Pacman pacman está completamente separado, pero es necesariamente invocado por makepkg o manualmente, para instalar y eliminar los paquetes construidos y para buscar dependencias. AUR El Arch User Repository está separado de ABS, pero AUR (sin soporte) PKGBUILDs se construyen usando makepkg para compilar y empaquetar software. En contraste con el árbol ABS en su máquina local, el AUR existe como una interfaz de sitio web. Contiene miles de PKGBUILDs aportados por el usuario para el software que no está disponible como paquete oficial de Arch. Si necesita construir un paquete fuera del árbol oficial del Arco, lo más probable es que esté en el AUR. Advertencia: PKGBUILDs oficiales asumen que los paquetes se construyen en un chroot limpio. La creación de software en un sistema de compilación sucia puede fallar o provocar un comportamiento inesperado en tiempo de ejecución, porque si el sistema de generación detecta dependencias dinámicamente, el resultado depende de qué paquetes están disponibles en el sistema de compilación. ¿Por qué querría usar ABS? El Arch Build System se utiliza para: Compilar o recompilar un paquete, por cualquier razón Hacer e instalar paquetes nuevos a partir del origen del software para el cual aún no hay paquetes disponibles (vea Crear paquetes) (Por ejemplo, con pacbuilder) Construya e instale su propio kernel personalizado (vea la compilación del kernel) Obtenga los módulos del kernel trabajando con su kernel personalizado Compile y instale fácilmente su propio kernel personalizado Instalar una versión más reciente, antigua, beta o de desarrollo de un paquete de Arch, editando el número de versión en el PKGBUILD ABS no es necesario usar Arch Linux, pero es útil para automatizar ciertas tareas de compilación de fuentes. Cómo usar los paquetes ABS Building utilizando abs consiste en estos pasos: Instale el paquete abs con pacman. Ejecute abs como root para crear el árbol ABS sincronizándolo con el servidor Arch Linux. Copie los archivos de compilación (habitualmente en / var / abs / ltrepogt / ltpkgnamegt) en un directorio de compilación. Vaya a ese directorio, edite el PKGBUILD (si lo desea / necesario) y makepkg. De acuerdo con las instrucciones en el PKGBUILD, makepkg descargará el tarball fuente apropiado, descomprimirlo, parche (si lo desea), compilar de acuerdo a CFLAGS especificado en makepkg. conf. Y finalmente comprimir los archivos construidos en un paquete con la extensión. pkg. tar. gz o. pkg. tar. xz. La instalación es tan fácil como hacer pacman - U lt. pkg. tar. xz filegt. La eliminación de paquetes también es manejada por pacman. Instalar herramientas Esto agarra las secuencias de comandos abs-sync, varios scripts de compilación y rsync (como una dependencia, si aún no lo tiene). Sin embargo, antes de que puedas construir algo, también necesitarás herramientas básicas de compilación. Estos se recogen fácilmente en el grupo de paquetes base-devel. Este grupo se puede instalar con pacman. /etc/abs. conf Edite /etc/abs. conf para incluir sus repositorios deseados. Eliminar el. Delante de los repositorios apropiados. Por ejemplo: Árbol ABS El árbol ABS es una jerarquía de directorios SVN ubicada bajo / var / abs y tiene el siguiente aspecto: El árbol ABS tiene exactamente la misma estructura que la base de datos de paquetes: Primer nivel: Nombre del repositorio Segundo nivel: Tercer nivel: PKGBUILD (contiene la información necesaria para construir un paquete) y otros archivos relacionados (parches, otros archivos necesarios para construir el paquete) El código fuente del paquete no está presente en el directorio ABS. En su lugar, el PKGBUILD contiene una dirección URL que descargará el código fuente cuando se construya el paquete. Así que el tamaño del árbol ABS es bastante pequeño. Descargue el árbol ABS Su árbol ABS ahora se crea bajo / var / abs. Tenga en cuenta que se crearon ramas de árbol correspondientes a las que especificó en /etc/abs. conf. El comando abs debe ejecutarse periódicamente para mantener la sincronización con los repositorios oficiales. Los archivos individuales del paquete del ABS se pueden también transferir con: De esta manera usted no tiene que comprobar hacia fuera el árbol entero del ABS apenas para construir un paquete. /etc/makepkg. conf Notas: utilice el segundo argumento de la plantilla para proporcionar indicaciones más detalladas. Makepkg s /etc/makepkg. conf especifica las variables de entorno globales y los indicadores del compilador que puede editar si está utilizando un sistema SMP o para especificar otras optimizaciones deseadas. La configuración predeterminada es para optimizaciones i686 y x8664 que funcionarán bien para aquellas arquitecturas en sistemas de CPU única. (Los valores por defecto funcionarán en las máquinas SMP, pero sólo usarán un núcleo / CPU al compilar ver makepkg para más detalles.) Establezca la variable PACKAGER en /etc/makepkg. conf La configuración de la variable PACKAGER en /etc/makepkg. conf es una opción Pero muy recomendable paso. Permite que una bandera identifique rápidamente qué paquetes han sido construidos y / o instalados por USTED, no el mantenedor oficial Esto se logra fácilmente utilizando expac. Mostrando todos los paquetes (incluidos los de AUR) Mostrando sólo los paquetes contenidos en repos Este ejemplo sólo muestra los paquetes contenidos en los repos definidos en /etc/pacman. conf. Crear un directorio de compilación Se recomienda crear un directorio de compilación en el que se realice la compilación actual. Nunca se debe modificar el árbol de ABS construyendo dentro de él, ya que los datos se perderán (sobrescribirán) en cada actualización de ABS. Es una buena práctica usar su directorio personal, aunque algunos usuarios de Arch preferen crear un directorio local bajo / var / abs /. Propiedad de un usuario normal. Cree su directorio de compilación. p. ej. Copie el ABS del árbol (/ var / abs / ltrepositorygt / ltpkgnamegt) al directorio de compilación. Crear paquete En nuestro ejemplo, crearemos el paquete del gestor de visualización delgado. Copie el ABS delgado del árbol ABS a un directorio de compilación: Vaya al directorio de construcción: Modifique el PKGBUILD a su gusto. Si necesita realizar cambios en la fuente en sí, en lugar de sólo en el PKGBUILD, consulte Patching en ABS. A continuación, ejecute makepkg (con el indicador - s para habilitar el manejo automático de la dependencia en tiempo de construcción): Nota: Antes de quejarse de las dependencias que faltan, recuerde que se supone que el grupo base-devel se instala al crear con makepkg. Consulte Herramientas de instalación. Instalar como root: Eso es todo. Usted acaba de construir delgado de fuente y limpia instalado a su sistema con pacman. La eliminación de paquetes también es manejada por pacman con pacman - R slim. El método ABS de instalación de software proporciona comodidad, al tiempo que mantiene una completa transparencia y control de las funciones de construcción e instalación incluidas en el PKGBUILD. Fakeroot Esencialmente, los mismos pasos se están ejecutando en el método tradicional (generalmente incluyendo los pasos ./configure, make, make), pero el software se instala en un entorno falso de la raíz. (Una raíz falsa es simplemente un subdirectorio dentro del directorio de compilación que funciona y se comporta como el directorio raíz del sistema. En conjunción con el programa fakeroot, makepkg crea un directorio raíz falso, e instala los binarios compilados y archivos asociados en él, con root como Propietario). La raíz falsa. O el árbol de subdirectorios que contiene el software compilado, se comprime a continuación en un archivo con la extensión. pkg. tar. xz. O un paquete. Cuando se invoca, pacman luego extrae el paquete (lo instala) en el directorio raíz real del sistema (/). Conservar los paquetes modificados Actualizar el sistema con pacman reemplazará un paquete modificado de ABS por el paquete del mismo nombre de los repositorios oficiales. Consulte las siguientes instrucciones para saber cómo evitar esto. Inserte una matriz de grupo en el PKGBUILD y agregue el paquete a un grupo denominado modificado. Agregue este grupo a la sección IgnoreGroup en /etc/pacman. conf. Si hay versiones nuevas disponibles en los repositorios oficiales durante una actualización del sistema, pacman imprime una nota de que está omitiendo esta actualización porque está en la sección IgnoreGroup. En este punto el paquete modificado debe ser reconstruido a partir de ABS para evitar actualizaciones parciales. Otras herramientas pbget - recupera PKGBUILDs para paquetes individuales directamente desde la interfaz web. Incluye soporte AUR. Asp - una herramienta para administrar los archivos de origen de compilación usados ​​para crear paquetes Arch Linux. Utiliza la interfaz git que ofrece más fuentes actualizadas. Estoy tratando de crear mi primer deb, así que no sé mucho sobre él todavía. Este es mi archivo de reglas en este momento: En este momento estoy leyendo la documentación y tratando de entender cómo escribir archivos de reglas más complicadas. Estoy atascado en objetivos de binario-arco y binario-indep. En resumen, no entiendo lo que realmente representan. La documentación dice que el arco del paquete está determinado por Arquitectura: línea en el archivo de control. Si el valor es todo, el paquete es dependiente de la arquitectura. Si el valor es cualquiera entonces el paquete es independiente de la arquitectura. Comprendo completamente esta parte. Pero entonces empiezo a leer archivos de hombre para las herramientas de debhelper. Man dpkg-buildpackage dice: Llama a debian / rules build seguido de fakeroot debian / rules binario-target (a menos que se haya solicitado una compilación de código fuente con - S). Tenga en cuenta que binario-objetivo es binario (caso por defecto, o si se especifica - b) o binario - arch (si - B se especifica) o binario-indep (si - A se especifica) Los comandos en la secuencia binario-indep se pasan La opción - i para asegurarse de que sólo funcionan en paquetes binarios independientes y los comandos en las secuencias de arco binario se pasan la opción - a para asegurarse de que sólo funcionan en paquetes dependientes de la arquitectura. Entonces intento ver el conjunto predeterminado de comandos para los objetivos binarios, binarios y indefinidos binarios escribiendo y obteniendo conjuntos de comandos totalmente iguales. La única diferencia es - i y - a flags después de cada comando. Así que la primera pregunta es - ¿Cuál es la diferencia entre, por ejemplo, dhautobuild, dhautobuild - a y dhautobuild - i (o algún otro dhcommand) Y otra pregunta es - si mi archivo de control consiste sólo de paquetes con toda la arquitectura ¿Necesito utilizar binario - indep objetivo, o puedo hacer sin él y utilizar sólo construir-arco objetivo en mi archivo de reglas. 27 de mayo a las 20:37 La diferencia El objetivo binario-indep construye toda la Arquitectura: todos los paquetes binarios en su paquete de origen. El archivo binary-arch de destino crea todos los demás paquetes, ya sea Architecture: any o paquetes con una lista de arquitectura explícita o algunos comodines de arquitectura como Architecture: linux-any. La distinción de estos dos caminos dentro del proceso de compilación es relevante si usted tiene un paquete de origen que contiene ambos tipos de paquetes binarios, dependientes de la arquitectura y dependientes: La compilación inicial del paquete genera ambos tipos de paquetes binarios, pero cada compilación subsiguiente En arquitecturas diferentes sólo necesita construir los paquetes binarios dependientes de la arquitectura ya que ya ha construido todos los paquetes independientes de la arquitectura en la primera compilación. Ejemplo Imagine que tiene un paquete de origen llamado foo que genera los paquetes binarios foo-programs y foo-data. Mientras que los programas en foo-programas deben ser compilados (por ejemplo, por estar escrito en C) y por lo tanto, el paquete binario es de Arquitectura: any. Los archivos de datos en foo-data (imágenes, traducciones, textos de ayuda, documentación, texturas, mapas de juegos, etc.) son los mismos para todas las arquitecturas, de ahí su Arquitectura: todo. Digamos que la versión upstream de foo es 1.0 y es la primera revisión del paquete Debian de esa versión upstream. Primero construye todos los paquetes en la arquitectura amd64 para PCs de 64 bits, obtendrá foo-programs1.0-1amd64.deb y foo-data1.0-1all. deb. Pero también quiere ser capaz de ejecutarlo en PCs de 32 bits, por lo que también necesita foo-programs1.0-1i386.deb. Pero no necesita un segundo foo-data1.0-1all. deb. Por lo que su proceso de compilación solo requiere los objetivos - arch, p. Llamando a dpkg-buildpackage - B. Necesidad de objetivos explícitos Con el mínimo de estilo dh debian / rules puede que no sea necesario especificar explícitamente objetivos, ya que muchos sistemas de compilación upstream no hacen esta distinción, pero si lo hacen (por ejemplo, al tener un objetivo de creación separado para la construcción de la documentación, puede Implementar que por ejemplo, como este: (Ejemplo tomado de la página de manual dh (7).) ¿Por qué necesitamos fakeroot comando en absoluto No podemos simplemente utilizar los comandos sudo o su La página man dice: fakeroot - ejecutar un comando en un entorno de falsificación Privilegios de root para la manipulación de archivos Proporciona un entorno de raíz falsa Este paquete está destinado a habilitar algo como: dpkg-buildpackage - rfakeroot es decir, para eliminar la necesidad de convertirse en root para una compilación de paquetes Esto se hace estableciendo LDPRELOAD en libfakeroot. so. Provee envolturas alrededor de getuid, chown, chmod, mknod, stat, creando así un entorno de raíz falsa Si no entiendes nada de esto, no necesitas fakeroot Mi pregunta es, ¿qué propósito especial resuelve que un simple su o sudo dont Por ejemplo, para reempaquetar todos los paquetes instalados en ubuntu le damos el siguiente comando: ¿Podemos hacer el comando anterior con sudo o su en lugar de fakeroot como este: me da este error: el directorio de control tiene permisos incorrectos 700 (debe ser 0755 y lt0775) Es una buena idea, por razones de seguridad, evitar hacer como root todo lo que podría hacerse como usuario normal, incluso si puede ejecutar sudo o su porque es su máquina. Fakeroot tiene dos usos 1) que engaña a los programas en la creencia de que son de hecho usuario raíz, que algunos mal escrito software propietario puede requerir incluso si no se necesita (por lo general desarrollador de Windows Linux ido) y 2) permite emular el modo de archivo y la propiedad cambios que wouldn39t De otra manera ser capaz de hacer, principalmente para crear un archivo tar con los permisos correctos y la propiedad, útil por ejemplo, cuando el software de embalaje. Ndash pqnet 12 de agosto a las 10:03 7 Respuestas Imagine que es un desarrollador / encargado de paquetes, etc. que trabaja en un servidor remoto. Desea actualizar el contenido de un paquete y reconstruirlo, descargar y personalizar un kernel de kernel. org y construirlo, etc. Mientras intenta hacer esas cosas, descubrirá que algunos pasos requieren que tenga derechos de root (UID y GID 0) por diferentes razones (seguridad, permisos pasados ​​por alto, etc). Pero no es posible obtener derechos de root, ya que está trabajando en una máquina remota (y muchos otros usuarios tienen el mismo problema que usted). Esto es exactamente lo que hace fakeroot: pretende un UID eficaz y GID de 0 para el medio ambiente que los requiere. En la práctica nunca obtienes privilegios reales de root (en oposición a su y sudo que mencionas). Respondió Mar 20 11 at 11:56 Para ver claramente la diferencia entre fakeroot y un sudo real / su, sólo hacer: Mientras usted está dentro de la concha fakeroot, parece que si usted es root - siempre y cuando no lo intente Para hacer cualquier cosa que realmente necesita privilegios de root. Y esto es exactamente lo que una herramienta de empaque necesita para hacer paquetes que tendrán sentido en cualquier máquina. De hecho, cuando usas fakeroot para empaquetar, lo que quieres lograr es hacer que las herramientas que ejecutas bajo fakeroot vean tus archivos como propiedad de root. Nada más y nada menos. De hecho, su o sudo no funcionarán para obtener la propiedad de archivo correcta. Respondió Oct 25 12 at 10:16 Isnt faker peligroso Si creo un archivo con el bit suid y rx perm, el archivo se creará propiedad de raíz, ejecutable por cualquier persona, como root O tal vez la configuración de suid bit no funcionará ndash Frizlab Oct 3 14 a las 21:14 No es bueno. Lo intenté yo mismo. La razón primaria para fakeroot es conseguir la raíz de la propiedad: root en los paquetes construidos sin realmente ser root. Los paquetes instalados tendrán permisos adecuados, sin embargo. Ndash ntzrmtthihu777 Dec 16 14 at 14:38 Dado que las respuestas son difíciles de entender (para mí) y se tomó un poco de pensamiento para entenderlo (este comentario me hizo entenderlo), voy a dar una explicación esperemos mejor. 1. Lo que sucede en fakeroot Nada más que lo que sucede con su propio usuario. Absolutamente nada más. Si fakeroot (que cuando se le llama le da una nueva shell, como sudo lo haría), pretender hacer cosas que necesitaba permiso para, y salir, absolutamente nada pasaría. Si lo piensas, es una pérdida total de tiempo. ¿Por qué harías cosas que normalmente no sucederá? Es una locura. Podrías simplemente no haber hecho nada de eso y no habría habido diferencia, ya que no hay rastro de ella. 2. La huella de fakeroot Podría haber un rastro de fakeroot. Veamos los comandos en la respuesta de MortenSickels que es bastante agradable y merece un upvote: A primera vista, parece que haber usado fakeroot fue una pérdida de tiempo total. Al final, si no has usado fakeroot. Usted tendría la misma cosa. Lo sutil aquí es esto: lo que significa que el contenido del archivo todavía recuerda ser una raíz. Usted podría decir que no usar fakeroot habría producido los mismos resultados. Tienes razón, este ejemplo es demasiado simple. Vamos a tomar otro ejemplo: Vamos a ver lo que pasó. Yo pretendía ser la raíz. Que es totalmente ineficaz, y creó xey. Fingí x pertenecer a myuser y y pertenecer a la raíz. En realidad ambos pertenecen a myuser (como podemos ver al final), pero sólo fingí que fuera así. Entonces creé una lista y guardé mi imaginación en un archivo. Más tarde, cuando miro hacia atrás en el archivo, puedo ver que me imaginaba los archivos deben ser propiedad de. Una vez más, no son propiedad de personas que imaginé, simplemente me lo imaginaba. 3. Así. ¿Por qué quiere eso de nuevo? Puede decir que realmente no necesito falsificar ser root para crear ese listado. Podría haber creado simplemente el listado, después lo he editado para reflejar mi imaginación. Tienes razón, no necesitas fakeroot para eso. De hecho, sabiendo que el fakeroot no hace realmente nada, no puedes haber ganado ninguna habilidad que no tenías antes. Pero . Y esto es lo que fakeroot es todo, la edición de la lista podría ser no trivial. Al igual que con un paquete que se puede instalar en su sistema, tiene un archivo tar, gzip ed, xz ed, bzip2 ed o cualquier otro formato que mantenga sus archivos juntos y recuerde sus permisos y propietarios. ¿Puede modificar fácilmente el archivo comprimido y editar la propiedad de un archivo que no sé acerca de usted, pero no puedo pensar en una manera. ¿Podría haber una herramienta construida que, una vez que todo está comprimido, modifica el archivo comprimido y programaticamente edita las propiedades y permisos. Sí, podría. Así que o bien podría falsificar las propiedades antes de comprimir, o cambiar después. La gente de Debian decidió que el primero es más fácil. 4. ¿Por qué no utilizar sudo? En primer lugar, no necesita privilegios de root para crear software y no necesita privilegios de root para comprimirlos. Así que si no lo necesita, youd tiene que ser realmente un usuario de Windows a pensar siquiera de obtener ese permiso. Pero aparte del sarcasmo, puede que ni siquiera tenga contraseña de root. Además, digamos que tienes permisos de root. Y vamos a decir que desea pretender que un archivo debe tener acceso de lectura sólo a la raíz. Así que sudo. En realidad cambiar el propietario del archivo y los permisos a la raíz. Usted sale de la cáscara de la raíz e intenta empaquetar todo. Usted falla porque ahora usted no puede leer el archivo ya que usted no tiene acceso de raíz. Así que tienes que sudo y comprimir y construir el paquete como root. Efectivamente, usted tiene que hacer todo como root. Como empaquetador, usted no necesita permisos de la raíz y usted shouldnt lo consigue. Cuando instale un paquete, puede que necesite instalar algún archivo (A) como root y ahí es donde necesita permisos de root. Todo el fakeroot hace es hacer esto posible. Deja que la lista de empaquetadores A sea propiedad de root para el archiver, de modo que cuando el paquete sea descomprimido por el usuario, el archiver pide permiso de root y crea A como propiedad de root. Ive lo utilizó para scripts de construcción de paquetes. No estaba seguro de que la persona que ejecuta el script tenga acceso al nivel de la raíz, pero el script todavía necesita generar, por ejemplo, un archivo tar que contenga archivos que pertenezcan a root. La forma más sencilla de hacerlo fue ejecutar el script de compilación de paquetes bajo fakeroot, lo cual engañó al archiver para que creyera que los archivos pertenecían a root y los empacó como tal dentro del archivo. De esta manera, cuando el paquete se desempaquetó en la máquina de destino (en una máquina diferente por completo), los archivos no pertenecen a usuarios extraños o no existentes. Pensando en ello, el único lugar que he visto esto fue para la construcción de algún tipo de archivo: rootfs de sistemas embebidos, archivos tar. gz, rpm paquetes. Paquetes de deb, etc. contestado Feb 24 11 at 12:58 fakeroot es una herramienta de solución para el software de empaquetado bugged: no hay razón que usted necesita para ser root para crear dichos paquetes, pero ya que don39t le permiten especificar permisos de archivo en cualquier otro Manera que ponerlos directamente en el sistema de archivos beforehands no tienes opción ndash pqnet Un uso común es averiguar qué archivos un binario fallando realmente quería acceder. Es decir, averiguar y solucionar o trabajar en torno a errores causados ​​por rutas codificadas y manipulación de excepciones incorrectas.

Comments