Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
melange — Compile le code source en paquets APK signés et audités à l'aide de pipelines déclaratifs pour Wolfi/Alpine, avec émulation QEMU multi-architecture et builds reproductibles. | Kitploit
Outils/GitHubGitHub/chainguard-dev/melange
DevSecOpsUtilitaires et FrameworksSécurité de la Chaîne Logistique
GitHubchainguard-dev/melange

melange

Compile le code source en paquets APK signés et audités à l'aide de pipelines déclaratifs pour Wolfi/Alpine, avec émulation QEMU multi-architecture et builds reproductibles.

Voir le dépôt
623174il y a 3 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

melange

Construisez des paquets apk à l'aide de pipelines déclaratifs.

Couramment utilisé pour fournir des paquets personnalisés pour les images de conteneurs construites avec apko. La majorité des apks sont construits pour être utilisés avec les écosystèmes Wolfi ou Alpine Linux.

Fonctionnalités clés :

  • Constructions orientées pipeline. Chaque étape du pipeline de construction est définie et contrôlée par vous, contrairement aux gestionnaires de paquets traditionnels qui ont des phases distinctes.
  • Multi-architecture par défaut. QEMU est utilisé pour émuler différentes architectures, évitant ainsi le besoin d'étapes de compilation croisée.

Pourquoi

Les usines logicielles sécurisées sont l'évolution de DevOps, permettant à un utilisateur de prouver la provenance de tous les artefacts incorporés dans une appliance logicielle. En construisant et en capturant les artefacts logiciels dans des paquets, les équipes DevOps peuvent gérer leurs artefacts logiciels comme s'il s'agissait de n'importe quel autre composant d'une image.

C'est particulièrement utile lors de la construction d'appliances logicielles sous la forme d'images de conteneurs OCI avec apko.

Installation

Vous pouvez installer Melange depuis Homebrew :

root@kitploit:~
brew install melange

Vous pouvez également installer Melange depuis les sources :

root@kitploit:~
go install chainguard.dev/melange@latest

Vous pouvez également utiliser l'image de conteneur Melange :

root@kitploit:~
docker run cgr.dev/chainguard/melange version

Pour utiliser les exemples, vous voudrez généralement monter votre répertoire actuel dans le conteneur et fournir des privilèges élevés, par exemple :

root@kitploit:~
docker run --privileged -v "$PWD":/work cgr.dev/chainguard/melange build examples/gnu-hello.yaml

L'exécution en dehors d'un conteneur nécessite Docker, mais devrait également fonctionner avec d'autres moteurs d'exécution tels que podman.

Démarrage rapide

Un fichier de construction melange ressemble à :

root@kitploit:~
package:
  name: hello
  version: 2.12
  epoch: 0
  description: "the GNU hello world program"
  copyright:
    - attestation: |
        Copyright 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2005,
        2006, 2007, 2008, 2010, 2011, 2013, 2014, 2022 Free Software Foundation,
        Inc.
      license: GPL-3.0-or-later
  dependencies:
    runtime:

environment:
  contents:
    repositories:
      - https://dl-cdn.alpinelinux.org/alpine/edge/main
    packages:
      - alpine-baselayout-data
      - busybox
      - build-base
      - scanelf
      - ssl_client
      - ca-certificates-bundle

pipeline:
  - uses: fetch
    with:
      uri: https://ftp.gnu.org/gnu/hello/hello-${{package.version}}.tar.gz
      expected-sha256: cf04af86dc085268c5f4470fbae49b18afbc221b78096aab842d934a76bad0ab
  - uses: autoconf/configure
  - uses: autoconf/make
  - uses: autoconf/make-install
  - uses: strip

subpackages:
  - name: "hello-doc"
    description: "Documentation for hello"
    dependencies:
      runtime:
        - foo
    pipeline:
      - uses: split/manpages
    test:
      pipeline:
        - uses: test/docs

test:
  environment:
    contents:
      packages:
        - bar
  pipeline:
    - runs: |
        hello
        hello --version

Nous pouvons construire ce fichier avec :

root@kitploit:~
melange build examples/gnu-hello.yaml

ou, avec Docker :

root@kitploit:~
docker run --privileged --rm -v "${PWD}":/work \
  cgr.dev/chainguard/melange build examples/gnu-hello.yaml

Cela créera un dossier packages, avec une entrée pour chaque architecture prise en charge par le paquet. Si vous souhaitez uniquement construire pour l'architecture actuelle, vous pouvez ajouter --arch $(uname -m) à la commande de construction. Dans le répertoire de l'architecture, vous devriez trouver les fichiers apk pour chaque paquet construit dans le pipeline.

Si vous souhaitez signer vos apks, créez une clé de signature avec la commande melange keygen :

root@kitploit:~
melange keygen
root@kitploit:~
 generating keypair with a 4096 bit prime, please wait...
 wrote private key to melange.rsa
 wrote public key to melange.rsa.pub

Transmettez ensuite l'argument --signing-key à melange build.

Débogage des constructions melange

Pour inclure des informations de niveau débogage sur les constructions melange, modifiez votre fichier melange.yaml et incluez set -x dans votre pipeline. Vous pouvez ajouter cette option à n'importe quel endroit de vos commandes de pipeline pour déboguer davantage une section spécifique de votre construction.

root@kitploit:~
...
pipeline:
  - name: Build Minicli application
    runs: |
      set -x
      APP_HOME="${{targets.destdir}}/usr/share/hello-minicli"
...

Substitutions par défaut

Melange fournit les substitutions par défaut suivantes qui peuvent être référencées dans le pipeline du fichier de construction :

Un exemple de pipeline de fichier de construction avec substitutions :

root@kitploit:~
pipeline:
  - name: 'Create tmp dir'
    runs: mkdir ${{targets.destdir}}/var/lib/${{package.name}}/tmp

Documentation plus détaillée

Utilisation avec apko

Pour utiliser un apk construit avec melange dans apko, téléversez-le dans un dépôt de paquets ou utilisez un dépôt « local ». L'utilisation d'un dépôt local permet à une construction melange et à une construction apko de s'exécuter dans le même répertoire (ou dépôt GitHub) sans utiliser de stockage externe. Un exemple de cette approche peut être consulté dans le dépôt nginx-image-demo.

Télécharger l’outil
SubstitutionDescription
${{package.name}}Nom du paquet
${{package.version}}Version du paquet
${{package.epoch}}Epoch du paquet
${{package.full-version}}${{package.version}}-r${{package.epoch}}
${{package.description}}Description du paquet
${{package.srcdir}}Répertoire source du paquet (--source-dir)
${{subpkg.name}}Nom du sous-paquet
${{context.name}}nom du paquet principal ou du sous-paquet
${{targets.outdir}}Répertoire où les cibles seront stockées
${{targets.contextdir}}Répertoire où seront stockées les cibles pour les paquets principaux et les sous-paquets
${{targets.destdir}}Répertoire où seront stockées les cibles pour le paquet principal
${{targets.subpkgdir}}Répertoire où seront stockées les cibles pour les sous-paquets
${{build.arch}}Architecture de la construction actuelle (par ex. x86_64, aarch64)
${{build.goarch}}GOARCH de la construction actuelle (par ex. amd64, arm64)