Ошибка зависимости для /boot LUKS на внешнем USB-накопителе после обновления Debian initramfs

Resumen

Hay tres categorías generales de módulos con los que está tratando:

  1. Esos programas de soporte instalados para todos los usuarios con el sistema de paquetes OS. (Esto puede incluso incluir herramientas y bibliotecas utilizadas por personas que programan en Python; vea abajo. )Para esto, usa los paquetes del sistema operativo donde puede, y pipse instala en los directorios del sistema donde sea necesario.
  2. Esos programas de soporte instalados por un usuario en particular solo para su propio uso, y también para ciertos aspectos de su uso "día -a -día" de Python como lenguaje de secuencias de comandos. Para estos utiliza pip --user, quizás pyenv o pythonz , y herramientas y tácticas similares.
  3. Aquellos que apoyan el desarrollo y uso de una aplicación específica. Para esto, usavirtualenv(o una herramienta similar ).

Cada nivel aquí también puede recibir apoyo de un nivel anterior. Por ejemplo, nuestro usuario en (2 )puede estar confiando en un intérprete de Python instalado a través de paquetes de SO.

Entrando en esto con un poco más de detalle:

Programas y paquetes del sistema

Los programas escritos en Python que desea "simplemente ejecutar" son fáciles :simplemente use las herramientas de instalación del sistema operativo y déjelos traer lo que necesiten; esto no es diferente de un programa que no sea -Python. ¡Es probable que esto traiga herramientas/bibliotecas de Python (como el propio intérprete de Python! )en el que los usuarios de su máquina pueden comenzar a confiar;esto no es un problema siempre que entiendan la dependencia e, idealmente, conozcan medios alternativos para manejarla en hosts que no proporcionen esas dependencias.

Un ejemplo común y simple de tal dependencia son algunos de mis scripts personales en ~/.local/bin/que comienzan con #!/usr/bin/env python. Estos funcionarán bien (siempre que se ejecuten bajo Python 2 )en RH/CentOS 7 y la mayoría (pero no todas )instalaciones de Ubuntu; no estarán bajo una instalación básica de Debian o en Windows. Por mucho que no me guste que mi entorno personal tenga muchas dependencias en los paquetes del sistema operativo (, trabajo en varios sistemas operativos diferentes ), algo como esto lo encuentro bastante aceptable; mi plan de respaldo en los hosts raros que no tienen un sistema Python y no pueden obtener uno es ir con un sistema de usuario como se describe a continuación.

Las personas que usan un intérprete de Python del sistema también suelen depender del sistema pip3. Ahí es donde normalmente trazo la línea en las dependencias de mi sistema; todo de virtualenven adelante me ocupo de mí mismo. (Por ejemplo, mi secuencia de comandos de activación estándar se basa en cualquier pip3o pipque esté en la ruta, pero descarga su propia copia de virtualenvpara iniciar el entorno virtual que está creando.

Dicho esto, es probable que haya circunstancias en las que sea perfectamente razonable hacer más disponible un entorno de desarrollo. Es posible que tenga interfaces de Python en paquetes complejos (como un DBMS )en el que quiera usar la versión del sistema y sienta que es mejor que también deje que el sistema elija el código de la biblioteca de Python en particular que usará para hablar lo. O puede estar implementando una gran cantidad de hosts con un entorno de desarrollo básico para una clase de Python y encontrarlo más fácil de automatizar con paquetes de sistema estándar.

Usuario "Día -a -día" Programas y Paquetes

Los usuarios pueden tener bibliotecas o programas de Python que no se adaptan bien a un entorno virtual porque, en primer lugar, quieren ayudar a crear entornos virtuales (, por ejemplo, virtualenvwrapper)o son cosas que usa comúnmente desde la línea de comandos, incluso cuando no trabaja con Python -. Incluso si tienen la capacidad de instalar versiones del sistema de estos, pueden sentirse más cómodos instalando los suyos propios (, por ejemplo, porque quieren usar la última versión de la herramienta y sus dependencias ).

Generalmente pip --useres lo que la gente usará para esto, aunque ciertas dependencias, como el propio intérprete de Python, requieren un poco más que eso. pyenv y pythonz son ​​útiles para construir intérpretes personales (ya sea que estén instalados en ~/.local/binpara ser el intérprete predeterminado o de otra manera )y, por supuesto, uno siempre puede simplemente construir " a mano" de la fuente si las bibliotecas de desarrollo están disponibles.

Trato de mantener el conjunto mínimo de cosas instaladas aquí :virtualenvwrapper (porque lo uso constantemente )y quizás la última versión de pip. Trato de evitar dependencias fuera de la biblioteca estándar o en Python 3 para scripts personales que escribo para ser usados ​​en muchos hosts. (Aunque veremos cuánto tiempo aguanto con eso a medida que muevo más y más de estos scripts personales a Python.)

Desarrollo de aplicaciones y entornos de tiempo de ejecución independientes

Esto es lo habitual virtualenv. Para el desarrollo, casi siempre debe usar un virtualenv para asegurarse de que no está usando dependencias del sistema o, a menudo, más de una para probar diferentes versiones de Python.

Estos entornos virtuales también son buenos para aplicaciones con muchas dependencias en las que desea evitar contaminar su entorno de usuario.Por ejemplo, normalmente configuro un virtualenv para ejecutar portátiles Jupyter y similares.

1
21.07.2019, 22:55
1 ответ

На самом деле этот работал у меня (по модулю Мне пришлось немного повозиться из-за внешнего загрузочного раздела)

0
28.01.2020, 00:06

Теги

Похожие вопросы