Mejoras en openSUSE Leap-15.1 3a. parte
Mejoras en openSUSE 15.1 - Leap (3a. parte)
Leap 15.1 tiene varios paquetes OpenStack para que los administradores puedan controlar grandes grupos de recursos de computación, almacenamiento y redes.
El paquete openstack-utils es una utilidad para ayudar en la configuración y configuración de los paquetes OpenStack.
openstack-config - Manipula los archivos ini de openstack
openstack-db: configura o elimina la base de datos para un servicio específico
openstack-demo-install: configure todos los servicios en un solo nodo para realizar pruebas
openstack-status: proporciona una descripción general del estado de los servicios instalados
Las macros de OpenStack RPM son necesarias para crear paquetes de OpenStack y los paquetes como las extracciones de openstack-suse en otros paquetes de utilidad que son principalmente útiles para el empaquetado de OpenStack. Algunos incluso se usan solo en tiempo de construcción.
Leap 15.1 tiene CUPS 2.2.7. CUPS es un sistema de impresión modular que permite que una computadora actúe como un servidor de impresión. Una computadora que ejecuta CUPS es un host que puede aceptar trabajos de impresión de las computadoras cliente, procesarlos y enviarlos a la impresora adecuada. CUPS consta de una cola de impresión y un programador, un sistema de filtro que convierte los datos de impresión a un formato que la impresora entenderá y un sistema back-end que envía estos datos al dispositivo de impresión. CUPS utiliza el Protocolo de impresión de Internet (IPP) como la base para administrar los trabajos de impresión y las colas. También proporciona las interfaces de línea de comando tradicionales para los sistemas de impresión System V y Berkeley, y brinda soporte para el protocolo Line Printer Daemon de Berkeley y soporte limitado para el protocolo de bloque de mensajes del servidor (SMB). CUPS viene con una interfaz basada en web incorporada.
Leap 15.1 está repleto de varias tecnologías de contenerización como Singularity, que brindan contenedores y reproducibilidad a la computación científica y al mundo de la computación de alto rendimiento (HPC). Singularity apareció por primera vez en la distribución Leap en Leap 42.3 y proporciona funcionalidad para construir contenedores mínimos más pequeños y ejecuta los contenedores como entornos de aplicación única. Otro paquete oficial en Leap 15.1 es libcontainers-common, que permite la configuración de archivos y páginas de manual compartidas por herramientas basadas en las bibliotecas github.com/containers, como Buildah, CRI-O, Podman y Skopeo.
openSUSE Leap 15.1 - 1a. parte
openSUSE Leap 15.1 - 2a. parte
openSUSE Leap 15.1 - 4a. parte
openSUSE Leap 15.1 - 5a. parte
openSUSE Leap 15.1 - 6a. parte
openSUSE Leap 15.1 - 7a. parte
openSUSE Leap 15.1 - 8a. parte
Mejoras en openSUSE Leap-15.1 2a. parte
Mejoras en openSUSE Leap-15.1-2a.parte
Leap 15.1 tiene la versión systemd 234. Esta es la misma versión que estaba en Leap 15.0. La siguiente información pertenece a la versión 234:
Se ha agregado soporte para la creación dinámica de usuarios durante la vida útil de un servicio. Si se especifica DynamicUser = yes, las ID de usuario y grupo se asignarán desde el rango 61184..65519 durante la vida útil del servicio. Se pueden resolver utilizando el nuevo módulo NSS nss-systemd.so. El módulo debe estar habilitado en /etc/nsswitch.conf. Los servicios que se inician de esta manera tienen PrivateTmp = y RemoveIPC = habilitados, de modo que todos los recursos asignados por el servicio se eliminarán cuando finalice el servicio. También tienen ProtectHome = solo lectura y ProtectSystem = estricto habilitado, por lo que no pueden realizar modificaciones permanentes en el sistema.
MemoryLimit = y la configuración de la unidad relacionada ahora opcionalmente tienen especificaciones de porcentaje. El porcentaje se toma en relación con la cantidad de memoria física en el sistema (o, en el caso de los contenedores, la cantidad de memoria asignada). Esto permite escalar los recursos del servicio cuidadosamente con la cantidad de RAM disponible en el sistema. De manera similar, la opción RuntimeDirectorySize = de systemd-logind ahora también tiene valores de porcentaje opcionalmente.
La configuración del archivo de la unidad SystemCallFilter = obtuvo soporte para conjuntos de filtros de llamadas del sistema predefinidos y nombrados. Por ejemplo, SystemCallFilter = @ clock es ahora una forma efectiva de hacer que todas las llamadas del sistema relacionadas con el cambio de reloj no estén disponibles para un servicio. Se definen una serie de grupos predefinidos similares. Escribir filtros de llamadas al sistema para servicios del sistema se simplifica sustancialmente con este nuevo concepto. En consecuencia, todos los servicios de larga duración propios de systemd ahora habilitan el filtrado de llamadas al sistema basado en esto, de forma predeterminada.
Se ha agregado una nueva configuración de servicio MemoryDenyWriteExecute =, tomando un valor booleano. Si está activado, un servicio ya no puede crear asignaciones de memoria que se puedan escribir y ejecutar al mismo tiempo. Esto mejora la seguridad de los servicios donde está habilitado, ya que se vuelve más difícil escribir dinámicamente y luego ejecutar la memoria en los procesos de servicio explotados. Esta opción se ha habilitado para todos los servicios de larga duración propios de systemd.
Se ha agregado un nuevo comando "systemctl revert" que se puede usar para revertir a la versión del proveedor de un archivo de unidad, en caso de que se hayan realizado cambios locales agregando entradas o anulando el archivo de unidad.
PHP 7
PHP7 es un lenguaje de secuencias de comandos incrustado HTML del lado del servidor diseñado principalmente para el desarrollo web, pero también se usa como un lenguaje de programación de propósito general. La versión 7.2.5 que se encuentra en Leap 15.1 y 15.0 incluye la implementación estándar de PHP, Zend PHP. Se incluyen el binario de línea de comandos de PHP y el archivo de configuración (php.ini). Este paquete debe estar instalado para poder utilizar PHP. Además, se pueden instalar módulos de extensión y módulos de servidor (por ejemplo, para Apache). Documentación adicional está disponible en el paquete php-doc.
Mejoras en openSUSE Leap 15.1 1a. parte
Las siguientes lineas contienen algunos detalles sobre las novedades de esta versión de openSUSE. ¿Demasiada información? Esta es sólo la 1a. parte de la información que tenemos sobre openSUSE Leap 15.1. Echa un vistazo a las características destacadas.
Sistema operativo base
Kernel de linux
Leap 15.1 utilizará el kernel de Linux 4.12. El hardware de gráficos compatible con el kernel 4.19 de Linux se incluyó en el puerto para el lanzamiento de Leap 15.1, que admite más controladores de gráficos para la Unidad de procesamiento de gráficos (GPU) y un mejor soporte para las tarjetas Vega de AMD. El kernel cambia a CONFIG_PREEMPT_VOLUNTARY https://bugzilla.suse.com/show_bug.cgi?id=1125004
Una lista de características prominentes y detalles complejos se pueden encontrar en kernelnewbies.org.
Soporte de hardware
Leap 15.1 funciona con X86_64 y los escenarios de implementación se pueden ejecutar para físicos, virtuales, de host e invitados, y en la nube. Los puertos para otras arquitecturas como ARM64 y POWER estarán disponibles en la comunidad.
Colección de compiladores GNU
GNU Compiler Collection 8 está disponible además de GCC 7.
- Mejoras de optimización inter-procedimiento:
- Las métricas de estimación de tiempo de ejecución rediseñadas conducen a suposiciones más realistas que impulsan las heurísticas de la línea de entrada y la clonación.
- El paso ipa-pure-const se extiende para propagar el atributo malloc, y la opción de advertencia correspondiente -Wsuggest-attribute = malloc emite un diagnóstico para las funciones que se pueden anotar con el atributo malloc.
- Perfil de mejoras de optimización impulsada:
- Nueva infraestructura para la representación de perfiles (tanto estimados estáticamente como retroalimentación del perfil) que permite la propagación de información adicional sobre la confiabilidad del perfil.
- Una serie de mejoras en el perfil de actualización del código resuelve los problemas encontrados por el nuevo código de verificación.
- Detección estática de código que no se ejecuta en una ejecución válida del programa. Esto incluye rutas que activan un comportamiento indefinido, así como llamadas a funciones declaradas con el atributo frío. Recientemente, el atributo noreturn no implica todos los efectos de frío para diferenciar entre exit (que es noreturn) y abortar (que además no se ejecuta en ejecuciones válidas).
- -Freorder-blocks-and-partition, una función de división de cuerpos en regiones frías y calientes, ahora está habilitada de forma predeterminada en -O2 y superior para x86 y x86-64.
- Mejoras de optimización de tiempo de enlace:
- Hemos mejorado significativamente la información de depuración de los objetivos ELF utilizando DWARF al preservar adecuadamente la información específica del idioma.
- Se presenta una nueva opción -fcf-protection = [full | branch | return | none] para ejecutar la instrumentación de código para aumentar la seguridad del programa al verificar que las direcciones de destino de las instrucciones de transferencia de flujo de control (como la llamada de función indirecta, el retorno de función, el salto indirecto) ) son validos. Actualmente, la instrumentación solo es compatible con objetivos x86 GNU / Linux. Consulte la guía del usuario para obtener más información sobre la sintaxis de la opción y la sección "Nuevos objetivos y mejoras específicas del objetivo" para IA-32 / x86-64 para obtener más detalles.
- La opción -gcolumn-info ahora está habilitada de forma predeterminada. Incluye información de columna además de solo nombres de archivos y números de línea en la información de depuración DWARF.
- El paso de optimización de nido de bucle de base poliédrica -floop-nest-optimic ha sido revisado. Todavía se considera experimental y no puede dar como resultado ninguna mejora en el tiempo de ejecución.
- Se han agregado dos nuevos pasos de optimización de nido de bucle clásico. -floop-unroll-and-jam realiza el desenrollado del bucle externo y la fusión de las copias del bucle interno. -Floop-intercambio intercambia bucles en un nido de bucle para mejorar la localidad de datos. Ambos pasos están habilitados de forma predeterminada en -O3 y superior.
- El paso de optimización del nido de bucle clásico -free-loop-distribution se ha mejorado y habilitado de forma predeterminada en -O3 y superior. Admite la distribución de nidos de bucle en algunos escenarios restringidos; también es compatible con la distribución de bucle más interna cancelable con control de versiones de bucle en las comprobaciones de alias en tiempo de ejecución.
- La nueva opción -fstack-clash-protection hace que el compilador inserte sondas cada vez que el espacio de la pila se asigna de forma estática o dinámica para detectar de manera confiable los desbordamientos de la pila y así mitigar el vector de ataque que se basa en saltar sobre una página de protección de la pila como lo proporciona el sistema operativo. Redes
Leap 15.1 ha recibido todos los backports necesarios y utiliza el mismo Kernel de Enterprise Linux que utiliza SUSE. Leap tiene la protección contra choques, que fue importante para una vulnerabilidad de "Choque de pila" que expuso otras distribuciones.
OpenSSL
OpenSSL fue actualizado a 1.1.0i. Los siguientes fueron cambios importantes de la versión openSSL 1.1.0h en Leap 15.0:
Client DoS due to large DH parameter (CVE-2018-0732)
Cache timing vulnerability in RSA Key Generation (CVE-2018-0737)dehydrated / letencrypt
Dehydrated es un cliente para letsencrypt. La integración de SUSE proporciona plantillas para Apache, nginx y lighttpd. También admite la emisión basada en DNS, incluida la compatibilidad con certificados comodín.
Dehydrated es un cliente para firmar certificados con un servidor ACME (actualmente solo proporcionado por Let´s Encrypt) implementado como un bash-script relativamente simple.
Utiliza la utilidad openssl para todo lo relacionado con el manejo real de claves y certificados, por lo que necesita tenerlo instalado.
openSUSE Leap 15.1 - 2a. parte
openSUSE Leap 15.1 - 3a. parte
openSUSE Leap 15.1 - 4a. parte
openSUSE Leap 15.1 - 5a. parte
openSUSE Leap 15.1 - 6a. parte
openSUSE Leap 15.1 - 7a. parte
openSUSE Leap 15.1 - 8a. parte
Linux perf and KCachegrind
Recently I finally gave Linux perf a try. Not quite sure why I didn't use it before, IIRC when I tried it somewhen long ago, it was probably difficult to set up or something. Using perf record has very little overhead, but I wasn't exactly thrilled by perf report. I mean, it's text UI, and it just gives a list of functions, so if I want to see anything close to a call graph, I have to manually expand one function, expand another function inside it, expand yet another function inside that, and so on. Not that it wouldn't work, but compared to just looking at what KCachegrind shows and seeing ...
When figuring out how to use perf, while watching a talk from Milian Wolff, on one slide I noticed a mention of a Callgrind script. Of course I had to try it. It was a bit slow, but hey, I could finally look at perf results without feeling like that's an effort. Well, and then I improved the part of the script that was slow, so I guess I've just put the effort elsewhere :).
And I thought this little script might be useful for others. After mailing Milian, it turns out he just created the script as a proof of concept and wasn't interested in it anymore, instead developing Hotspot as UI for perf. Fair enough, but I think I still prefer KCachegrind, I'm used to this, and I don't have to switch the UI when switching between perf and callgrind. So, with his agreement, I've submitted the script to KCachegrind. If you would find it useful, just download this do something like:
$ perf record -g ...$ perf script -s perf2calltree.py > perf.out$ kcachegrind perf.out
使用 Ansible 建立 容器化 GitLab with openSUSE in Azure 小記
- 2 CPU / 8 GB MEM - 比對 VM 的話最便宜的就是 B2ms
- 安裝容器服務以及啟動
- 要有一個獨立磁碟將 container 的設定與資料存起來
- 掛載起來的時候, 要進行切割分割區以及建立 file system
- 掛載到指定目錄
- 下載 gitlab-ce 的 container image 並執行他, 開通 port 80 and port 443
- 以上的方式要以非互動的方式來進行
- 使用 gitlab 群組來進行安裝
- 因為想配合 Azure Dynamic Inventory 方式
- 這個 playbook 目前沒有處理 security group, 暫時先用手動開, 後面視需求看要不要加進去
- 在 Azure portal 上面開啟機器 security group 的 port 80
使用 ansible 管理 Azure Kubernetes Service (AKS) instance 小記
- 必須先有 client_id 以及 client_secret
- 有 ssh public key
Weblate blog moved
I've been publishing updates about Weblate on my blog for past seven years. Now the project has grown up enough to deserve own space to publish posts. Please update your bookmarks and RSS readers to new location directly on Weblate website.
The Weblate website will receive another updates in upcoming weeks, I'm really looking forward to these.
New address for Weblate blog is https://weblate.org/news/.
New address for the RSS feed is https://weblate.org/feed/.
openSUSE 42.3 to 15.0 Upgrade notes
Table to json with jq and awk
The problem
Say you have a table that looks like this:
AGGREGATE_NEEDED 1
ARCH x86_64
BASE_TEST_ISSUES NUMBER
BUILD :NUMBER:PACKAGE
DISTRI DISTRIBUTION
FLAVOR Server-DVD-Incidents-Install
INCIDENT_ID 99999
It’s just that it contains about 78 or more entries. Of course for a very skilled engineer or a person with a lot of tricks under the hood, this might be a very trivial task in vim or something like this, I guess that with a couple of replaces here and there, you’d get somewhere; but I’m not skilled, other than at eating.
The Solution
So I took my Key Value table saved it to a file and after googling a bit, now I’m more versed into awk :D:
cat FILE.txt | \
awk 'BEGIN { print "{" } \
{ printf "\"%s\":\"%s\",", $1,$2} \
END { print "\"MANUALLY_GENERATED_ISO_POST\":1 }" }'
| jq > x86_64-ready.json'"}'
I guess this could have been done easier and prettier, but fits my need and might save you too at some point.
Just make sure you have jq installed ok?
EasyTAG: Organize your music with openSUSE
Audio files in formats such as MP3, AAC, and Ogg Vorbis have made music ubiquitous and portable. With the explosive growth of storage capacity, you can store huge libraries of music. But how do you keep all that music organized? Just tag your music. Then you can access it easily locally and in the cloud. EasyTAG is a great choice for tagging music and is available in openSUSE.
Many audio file types support tagging, including:
- MP4, MP3, MP3, MP2
- Ogg Speex, Ogg Vorbis, Ogg Opus
- FLAC
- MusePack
- Monkey Audio
Installing EasyTAG
EasyTAG is easy to install from openSUSE repositories:
Or use Zypper in a terminal as Root:
# zypper install easytag
Then launch the program from the Software tool or the application menu for your desktop. EasyTAG’s straightforward interface works well in most desktop environments.
Tagging music
Select a folder where you have music you want to tag. By default, EasyTAG will also load subfolders. You can select each file and add tag information such as the artist, title, year, and so on. You can also add images to a file in JPG or PNG format, which most players understand.
Files you have altered appear in bold in the file listing. To save each, press Ctrl+S. You can also select the entire list and use Ctrl+Shift+S to save all the files at once.
One of the most powerful features of EasyTAG is the file scanner. The scanner recognizes patterns based on a template you provide. Once you provide the right template and scan files, EasyTAG automatically tags all of them for you. Then you can save them in bulk. This saves a lot of time and frustration when dealing with large libraries.
When you upload your tagged files to a cloud service, your tags allow you to quickly find and play the music you want anytime.
This article is an adaption of EasyTAG: Organize your music on Fedora under Creative Commons License.




