Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:manual:contrib:package_creation [2024/08/15 13:17] throgh [Creating packages for Hyperbola] |
en:manual:contrib:package_creation [2024/08/19 16:44] (current) throgh [The decisions behind: Are there disadvantages?] |
||
---|---|---|---|
Line 11: | Line 11: | ||
* knowledge about file-handling and folder-structures under GNU/Linux / UNIX | * knowledge about file-handling and folder-structures under GNU/Linux / UNIX | ||
* knowledge about handling configuration-files and commenting in or out their values | * knowledge about handling configuration-files and commenting in or out their values | ||
- | * handling privileges for users and groups under GNU/ Linux / UNIX | + | * handling privileges for users and groups under GNU/Linux / UNIX |
+ | * handling services and especially setup a webserver under GNU/Linux / UNIX (//for your own repository// | ||
If you do not have any knowledge within those named fields, this guide is not meant for you at this moment. | If you do not have any knowledge within those named fields, this guide is not meant for you at this moment. | ||
<note warning> | <note warning> | ||
+ | |||
+ | ===== The decisions behind: Are there disadvantages? | ||
+ | |||
+ | You may ask for sure: Do I really need all of this and manage packaging? The clear answer here is surely: No, you do not need to. But in fact you will also have to manage all the compiled and installed data on your own. Minimizing that effort is to create as said clear packaged software and data for you to install, remove, up- or downgrade all the time again on your own will with the clear point of knowledge what you are doing and what data is next added to your system running. | ||
+ | |||
+ | Are there disadvantages? | ||
===== Generic overview for the usage ===== | ===== Generic overview for the usage ===== | ||
Line 459: | Line 466: | ||
Those split definitions are only possible and needed when the software itself supports different definitions at time building and you have the intention to offer also those as dedicated package. | Those split definitions are only possible and needed when the software itself supports different definitions at time building and you have the intention to offer also those as dedicated package. | ||
+ | |||
===== Setup for a clean build-environment ===== | ===== Setup for a clean build-environment ===== | ||
Line 513: | Line 521: | ||
We have now possible environments named **x86_64** and **i686**. At this point it is needed to mention that you can clearly choose also different names for your environments when creating them. Those are only first recommendations resulting from the experiences made. | We have now possible environments named **x86_64** and **i686**. At this point it is needed to mention that you can clearly choose also different names for your environments when creating them. Those are only first recommendations resulting from the experiences made. | ||
+ | |||
+ | <note important> | ||
You can update and synchronize your chroot-enviroments with the following commands: | You can update and synchronize your chroot-enviroments with the following commands: | ||
Line 530: | Line 540: | ||
< | < | ||
doas libremakepkg -n i686 | doas libremakepkg -n i686 | ||
+ | </ | ||
+ | |||
+ | ===== Creating your own repository ===== | ||
+ | |||
+ | You can create your complete own repository for local or remote usage. The difference in between is for sure that local usage means only yourself as user for packages while remote usage includes everyone else. So let's assume that you have created now two packages: | ||
+ | |||
+ | < | ||
+ | ls | ||
+ | armagetronad | ||
+ | </ | ||
+ | |||
+ | In every folder listed is a compiled package ready for its further usage. For armagetronad this may be: | ||
+ | |||
+ | < | ||
+ | armagetronad-0.2.9.1.0-1-i686.pkg.tar.lz | ||
+ | </ | ||
+ | |||
+ | Let's copy all package-files to a newly created folder where our database will reside: | ||
+ | |||
+ | < | ||
+ | cp ./ | ||
+ | </ | ||
+ | |||
+ | We enter now the folder for our new repository: | ||
+ | |||
+ | < | ||
+ | cd / | ||
+ | </ | ||
+ | |||
+ | And afterwards create our package-database: | ||
+ | |||
+ | < | ||
+ | repo-add mypkgs.db.tar.lz *.pkg.tar.lz | ||
+ | </ | ||
+ | |||
+ | Example for resulting output: | ||
+ | |||
+ | < | ||
+ | # repo-add mypkgs.db.tar.lz *.pkg.tar.lz | ||
+ | ==> adding package ' | ||
+ | -> Computing checksums... | ||
+ | -> Creating ' | ||
+ | -> Creating ' | ||
+ | ==> adding package ' | ||
+ | -> Computing checksums... | ||
+ | -> Creating ' | ||
+ | -> Creating ' | ||
+ | ==> Creating updated database file ' | ||
+ | </ | ||
+ | |||
+ | Now you can add your own repository to your // | ||
+ | |||
+ | < | ||
+ | [mypkgs] | ||
+ | Server = file:/// | ||
+ | </ | ||
+ | |||
+ | Or you can share this via HTTPS / HTTP: | ||
+ | |||
+ | < | ||
+ | [mypkgs] | ||
+ | Server = https://< | ||
</ | </ |