Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
melange — स्रोत कोड को Wolfi/Alpine के लिए घोषणात्मक पाइपलाइनों का उपयोग करके ऑडिट योग्य, हस्ताक्षरित APK पैकेजों में संकलित करता है, जिसमें बहु-वास्तुकला QEMU एमुलेशन और पुनरुत्पादन योग्य बिल्ड शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/chainguard-dev/melange
DevSecOpsउपयोगिताएँ और फ्रेमवर्कआपूर्ति श्रृंखला सुरक्षा
GitHubchainguard-dev/melange

melange

स्रोत कोड को Wolfi/Alpine के लिए घोषणात्मक पाइपलाइनों का उपयोग करके ऑडिट योग्य, हस्ताक्षरित APK पैकेजों में संकलित करता है, जिसमें बहु-वास्तुकला QEMU एमुलेशन और पुनरुत्पादन योग्य बिल्ड शामिल हैं।

रिपॉजिटरी देखें
6231743 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

melange

घोषणात्मक पाइपलाइनों का उपयोग करके apk पैकेज बनाएँ।

आमतौर पर apko के साथ निर्मित कंटेनर छवियों के लिए कस्टम पैकेज प्रदान करने के लिए उपयोग किया जाता है। अधिकांश apk या तो Wolfi या Alpine Linux इकोसिस्टम के साथ उपयोग के लिए बनाए जाते हैं।

मुख्य विशेषताएँ:

  • पाइपलाइन-उन्मुख निर्माण। पारंपरिक पैकेज प्रबंधकों के विपरीत, जिनमें अलग-अलग चरण होते हैं, बिल्ड पाइपलाइन का हर चरण आपके द्वारा परिभाषित और नियंत्रित किया जाता है।
  • डिफ़ॉल्ट रूप से मल्टी-आर्किटेक्चर। विभिन्न आर्किटेक्चर का अनुकरण करने के लिए QEMU का उपयोग किया जाता है, जिससे क्रॉस-कंपाइलेशन चरणों की आवश्यकता समाप्त हो जाती है।

क्यों

सुरक्षित सॉफ़्टवेयर फैक्ट्रियाँ DevOps का विकास हैं, जो उपयोगकर्ता को किसी सॉफ़्टवेयर उपकरण में शामिल सभी आर्टिफैक्ट्स की उत्पत्ति साबित करने की अनुमति देती हैं। सॉफ़्टवेयर आर्टिफैक्ट्स को पैकेजों में बनाकर और कैप्चर करके, DevOps टीमें अपने सॉफ़्टवेयर आर्टिफैक्ट्स को ऐसे प्रबंधित कर सकती हैं जैसे कि वे किसी छवि का कोई अन्य घटक हों।

यह विशेष रूप से तब उपयोगी है जब apko के साथ OCI कंटेनर छवियों के रूप में सॉफ़्टवेयर उपकरण बनाए जा रहे हों।

इंस्टॉलेशन

आप Melange को Homebrew से इंस्टॉल कर सकते हैं:

root@kitploit:~
brew install melange

आप Melange को स्रोत से भी इंस्टॉल कर सकते हैं:

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

आप Melange कंटेनर छवि का भी उपयोग कर सकते हैं:

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

उदाहरणों का उपयोग करने के लिए, आप आम तौर पर अपनी वर्तमान निर्देशिका को कंटेनर में माउंट करना चाहेंगे और उन्नत विशेषाधिकार प्रदान करना चाहेंगे, उदाहरण के लिए:

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

कंटेनर के बाहर चलाने के लिए Docker की आवश्यकता होती है, लेकिन यह podman जैसे अन्य रनटाइम के साथ भी काम करना चाहिए।

त्वरित आरंभ

एक melange बिल्ड फ़ाइल इस प्रकार दिखती है:

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

हम इसे इस प्रकार बना सकते हैं:

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

या, Docker के साथ:

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

यह एक packages फ़ोल्डर बनाएगा, जिसमें पैकेज द्वारा समर्थित प्रत्येक आर्किटेक्चर के लिए एक प्रविष्टि होगी। यदि आप केवल वर्तमान आर्किटेक्चर के लिए बिल्ड करना चाहते हैं, तो आप बिल्ड कमांड में --arch $(uname -m) जोड़ सकते हैं। आर्किटेक्चर निर्देशिका के अंदर आपको पाइपलाइन में बनाए गए प्रत्येक पैकेज के लिए apk फ़ाइलें मिलनी चाहिए।

यदि आप अपने apk पर हस्ताक्षर करना चाहते हैं, तो 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

और फिर melange build को --signing-key तर्क दें।

melange बिल्ड की डिबगिंग

melange बिल्ड में डीबग-स्तरीय जानकारी शामिल करने के लिए, अपनी melange.yaml फ़ाइल संपादित करें और अपनी पाइपलाइन में set -x शामिल करें। आप इस फ़्लैग को अपने बिल्ड के किसी विशेष अनुभाग को और डीबग करने के लिए अपनी पाइपलाइन कमांड के किसी भी बिंदु पर जोड़ सकते हैं।

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

डिफ़ॉल्ट प्रतिस्थापन

Melange निम्नलिखित डिफ़ॉल्ट प्रतिस्थापन प्रदान करता है जिन्हें बिल्ड फ़ाइल पाइपलाइन में संदर्भित किया जा सकता है:

प्रतिस्थापनों के साथ एक उदाहरण बिल्ड फ़ाइल पाइपलाइन:

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

अधिक विस्तृत दस्तावेज़

apko के साथ उपयोग

apko में melange से निर्मित apk का उपयोग करने के लिए, इसे पैकेज रिपॉजिटरी में अपलोड करें या "लोकल" रिपॉजिटरी का उपयोग करें। लोकल रिपॉजिटरी का उपयोग करने से melange बिल्ड और apko बिल्ड एक ही निर्देशिका (या GitHub रेपो) में बाहरी स्टोरेज का उपयोग किए बिना चल सकते हैं। इस दृष्टिकोण का एक उदाहरण nginx-image-demo repo में देखा जा सकता है।

टूल डाउनलोड करें
SubstitutionDescription
${{package.name}}पैकेज नाम
${{package.version}}पैकेज संस्करण
${{package.epoch}}पैकेज इपॉक
${{package.full-version}}${{package.version}}-r${{package.epoch}}
${{package.description}}पैकेज विवरण
${{package.srcdir}}पैकेज स्रोत निर्देशिका (--source-dir)
${{subpkg.name}}उपपैकेज नाम
${{context.name}}मुख्य पैकेज या उपपैकेज नाम
${{targets.outdir}}वह निर्देशिका जहाँ targets संग्रहीत किए जाएँगे
${{targets.contextdir}}वह निर्देशिका जहाँ मुख्य पैकेजों और उपपैकेजों के लिए targets संग्रहीत किए जाएँगे
${{targets.destdir}}वह निर्देशिका जहाँ मुख्य के लिए targets संग्रहीत किए जाएँगे
${{targets.subpkgdir}}वह निर्देशिका जहाँ उपपैकेजों के लिए targets संग्रहीत किए जाएँगे
${{build.arch}}वर्तमान बिल्ड का आर्किटेक्चर (जैसे x86_64, aarch64)
${{build.goarch}}वर्तमान बिल्ड की GOARCH (जैसे amd64, arm64)