Developer Documentation: Difference between revisions

From Alpine Linux
m (→‎Package management: formatting)
(28 intermediate revisions by 8 users not shown)
Line 3: Line 3:
== Package management ==
== Package management ==
<!-- If you edit the following, please coordinate with Tutorials_and_Howtos#Post-Install and Installation#Post-Install.  Note that these three sections are not exact duplicates. -->
<!-- If you edit the following, please coordinate with Tutorials_and_Howtos#Post-Install and Installation#Post-Install.  Note that these three sections are not exact duplicates. -->
* [[Alpine Linux package management|Package Management (apk)]] ''(How to add/remove packages on your Alpine)''
* [[Alpine Linux package management|Package Management (apk)]] ''(How to add/remove packages on your Alpine)'' <!--  
<!-- [[Alpine Linux package management#Local_Cache|How to enable APK caching]] -->  <!-- includes [[Local APK cache]] -->
  [[Alpine Linux package management#Local_Cache|How to enable APK caching]] -->  <!-- includes [[Local APK cache]] -->
** [[Comparison with other distros]] - [https://wiki.archlinux.org/index.php/Arch_Compared_to_Other_Distributions] [https://wiki.archlinux.org/index.php/Pacman_Rosetta]
** [[Comparison with other distros]]
* [[Upgrading to Edge]]
** [[apk spec]]
* [[Edge|Upgrading to Edge]]
* [[Alpine local backup|Alpine local backup (lbu)]] ''(Permanently store your modifications in case your box needs reboot)''
* [[Alpine local backup|Alpine local backup (lbu)]] ''(Permanently store your modifications in case your box needs reboot)''
** [[Back Up a Flash Memory Installation]]
** [[Back Up a Flash Memory Installation]]
Line 17: Line 18:


== Init system ==
== Init system ==
* [[Alpine Linux Init System|Init System (OpenRC)]] ''(Configure a service to automatically boot at next reboot)''
* [[initramfs init]]
* [[Alpine Linux Init System|Init System (OpenRC)]] ''(Configure a service to automatically launch at next reboot)''
** [[Multiple Instances of Services]]
** [[Multiple Instances of Services]]
* [[Writing Init Scripts]]
* [[Writing Init Scripts]]


== Development ==
== Development ==
=== Configuring your system ===
=== Configuring your system ===
* [[Upgrading to Edge]] <!-- Pkg and Dev and Installation -->
* [[Edge|Upgrading to Edge]] <!-- Pkg and Dev and Installation -->
* [[Setup your system and account for building packages]] <!-- included in [[Creating an Alpine package]] -->


<!-- If you edit the following, please coordinate with Installation#Advanced.  Note that these two sections are not exact duplicates. -->
<!-- If you edit the following, please coordinate with Installation#Advanced.  Note that these two sections are not exact duplicates. -->
* [[Setting up the build environment on HDD]] <!-- Dev and Installation -->
* [[Setting up the build environment on HDD]] <!-- Dev and Installation -->
<!-- [[Setting up the build environment 1.7]] Obsolete, only Dev -->
<!-- [[Setting up the build environment 1.7]] Obsolete, only Dev -->
** [[Creating_an_Alpine_package#Setup_your_system_and_account|Setup your system and account for building packages]]
** [[Abuild_and_Helpers#abuild-keygen|Abuild-keygen]]


* [[Installing Alpine Linux in a chroot]] <!-- only Installation -->
* [[Installing Alpine Linux in a chroot]] <!-- only Installation -->
** [[Buildlab]] ''(Tool for creating and managing chroots)''
* [[Install Alpine on LXC]]
* Install Alpine on [[Install Alpine on VirtualBox|VirtualBox]], [[Install Alpine on VMware|VMware]], [[Install Alpine on coLinux|coLinux]], [[Qemu]], <!-- includes [[Install Alpine in Qemu]], [[Running Alpine in Qemu Live mode]], [[Running Alpine Linux As a QEMU networked Guest]] --> or [[Install Alpine on Amazon EC2|Amazon EC2]]


* Install Alpine on [[Install Alpine on VirtualBox|VirtualBox]], [[Install Alpine on VMware|VMware]], [[Install Alpine on coLinux|coLinux]], or [[Qemu]] <!-- includes [[Install Alpine in Qemu]], [[Running Alpine in Qemu Live mode]], [[Running Alpine Linux As a QEMU networked Guest]] -->
* [[Xen Dom0]] ''(Setting up Alpine as a dom0 for Xen hypervisor)''
 
* [[Xen Dom0]] ''Setting up Alpine as a dom0 for Xen hypervisor''
** [[Xen Dom0 on USB or SD]]
** [[Xen Dom0 on USB or SD]]
** [[Create Alpine Linux PV DomU]]
** [[Create Alpine Linux PV DomU]]
** [[Xen LiveCD]]


* [[Setting up a basic vserver]] <!-- only Installation -->
* [[Setting up a basic vserver]] <!-- only Installation -->
Line 43: Line 47:
<!-- [[Create an Alpine 1.9 vserver template]] -->
<!-- [[Create an Alpine 1.9 vserver template]] -->


=== Building from source/Creating packages ===
=== Building from source and creating packages ===


* [[Aports tree]] <!-- <== APKBUILD -->
* [[Aports tree]] <!-- <== APKBUILD -->
* [[Abuild]]
* [[Abuild and Helpers]] ''(Scripts for packaging)''
 
  <!-- includes [[Abuild_and_Helpers#apkbuild-cpan|Apkbuild-cpan]] -->
  <!-- includes [[Abuild_and_Helpers#apkbuild-pypi|Apkbuild-pypi]] -->
  <!--
  [[Abuild_and_Helpers#buildrepo|Buildrepo]]
  [[Abuild_and_Helpers#abuild-sign|Abuild-sign]]
  [[Abuild_and_Helpers#abuild-tar|Abuild-tar]]
  [[Abuild_and_Helpers#abump|Abump]]
  [[Abuild_helpers#apkgrel|Apkgrel]]
  -->
* [[Creating an Alpine package]]
* [[Creating an Alpine package]]
   <!-- includes [[Setup your system and account for building packages]] -->
   <!-- includes [[Setup your system and account for building packages]] -->
   <!-- includes [[Newapkbuild]]
   <!-- includes [[Newapkbuild]]
       To create the actual APKBUILD file newapkbuild can serve you a template to start with.
       To create the actual APKBUILD file, newapkbuild can give you a template to start with.
       It will create a directory with the given package name, place an example/template APKBUILD  
       It will create a directory with the given package name, place an example/template APKBUILD  
       file to the given directory, and fill some variables if those are provided. -->
       file to the given directory, and fill some variables if those are provided. -->
** [[Apkbuild-cpan]]
  <!-- includes [[Local_APK_cache]] -->
** [[Apkbuild-pypi]]
** [[Package policies]]
 
** [[Package Maintainers]]
* [[Buildrepo]]
* [[Custom Kernel]]
* [[Abuild-keygen]] [[Creating keys for package signing]]
* [[APKBUILD Reference]]
* [[Abuild-sign]]
* [[APKBUILD examples]]
* [[Abuild-tar]]
* [[Abump]] [[Apkgrel]]
 
* [[Alpine package format]]
* [[Alpine package format]]
* [[Apkindex format]]
* [[Apkindex format]]
* [[Package policies]]


* [[APKBUILD Reference]]
* [[APKBUILD examples]]


* [[Development using git]] <!-- includes [[Development using git:Configuration]] [[Development using git:Email]] -->
* [[Development using git]] <!-- includes [[Development using git:Configuration]] [[Development using git:Email]] -->
Line 77: Line 83:
** [[Development using git:Cgit|Cgit]]
** [[Development using git:Cgit|Cgit]]
** [[Cgit|Another cgit page]]
** [[Cgit|Another cgit page]]
<!--
** [[Migrate SVN to Git]]
-->
<!--
[[Abuild tree]]
I think this document should be deleted. It does not provide any useful information at all.
* You don't need check out abuild from git to be able to build packages. (using an official release of abuild is higly recommended)
* abuild.mk have been replaced with alpine-iso.git long time ago.
* the term 'build environment' made sense when we built alpine from gentoo. Now the 'build environment' is a normal alpine install + apk add alpine-sdk.
* The doc mention nothing about how to use abuild to build packages, not even it mention that you need to do 'make && sudo make install'
In short this doc provides no relevant info. I vote for removing it and instead write an how to use abuild doc or similar. --Ncopa 14:45, 6 July 2011 (UTC)
----
The abuild package provides scripts you need when creating packages for Alpine Linux. The abuild and its friends are installed automatically along with the alpine-sdk package.
    apk add alpine-sdk
http://git.alpinelinux.org/cgit/abuild.git/tree/ always contains the lastest version of the scripts, example-files, and makefiles.
Helpers
{{:Abuild-keygen}}
{{:Abuild-sign}}
{{:Abuild-tar}}
{{:Abump}}
{{:Apkgrel}}
{{:Abuild}}
APKBUILD generation
To create the actual APKBUILD file <tt>newapkbuild</tt> can serve you a template to start with. It will create a directory with the given package name, place an example/template APKBUILD file to the given directory, and fill some variables if those are provided.
{{:Newapkbuild}}
{{:Apkbuild-cpan}}
{{:Apkbuild-pypi}}
Tools
[[Buildlab]]
{{:Buildrepo}}
cmp-apks-iso
devbuild
initramfs-init
-->


=== Misc ===
=== Misc ===


* [[Buildlab]] ''dummy''
* [[Alpine Package Testing Suite]] ''work in progress''
* [[Alpine Package Testing Suite]] ''work in progress''
* [[Alpine Release Testing Checklist]]
* [[Alpine Release Testing Checklist]]
* [[Running glibc programs]]
* [[Running glibc programs]]
* [[Alpine Source Map by boot sequence]]


== Alpine Configuration Framework ==
== Alpine Configuration Framework ==
Line 155: Line 120:


== Alpine-developed Utilities ==
== Alpine-developed Utilities ==
* [[Alpine Wall]] (proposed firewall management framework)
* [[Alpine Wall]] - [[How-To Alpine Wall]] - [[Alpine Wall User's Guide]] ''(a new firewall management framework)''


== Alpine Design Docs ==
* [[Architecture]]
* [[File Formats]]


[[Category:Development]]
[[Category:Development]]

Revision as of 15:49, 6 October 2019

Package management

Init system

Development

Configuring your system

Building from source and creating packages


Misc

Alpine Configuration Framework

This material is work-in-progress ...

Needs to be organized/consolidated.
(Last edited by Nullbyte on 6 Oct 2019.)


Alpine-developed Utilities

Alpine Design Docs