Warning!
A Rust rewrite is currently underway due to technical debt, expect changes!
Clarification note:
Package
is used to describe a system package.Application
is used to describe a user installed application.libsqsh
is a system package.LibreOffice
is an application. Just to get that out of the way.:)
.deb
File into /Applications
dalixd
will recognize it and extract the deb into tmp/*
where *
is the name and
version of the package. It will then simulate installation into a root. tmp/*/root
Then it
will read the dependencies of the application, and place that in its own meta-data file alongside
other important information. It then copies tmp/*
into /Applications/*.app
Each of these
steps will get described in more detail
Implementation detail.
When
dalixd
converts a .deb into a AppBundle it createsAppRun
point to the.desktop
file in/usr/share/applications/
If there is multiple.desktop
files there or if there are non thendalixd
will display an error message saying “Error installing app *. Multiple Desktop files exist. This functionality is planned to be implemented in the future. Sorry for the inconvenience.”
Applications are not/should not be aware of each other, but packages are.
/
├── Applications
│ └── LibreOffice.app
├── System
│ ├── Packages
│ │ └── libsqsh---1.2.3
│ ├── Cache
│ │ ├── Packages
│ │ │ ├── index
│ │ │ ├── 0
│ │ │ ├── 1
│ │ │ └── 2
│ │ └── Packages.bak
│ │ └── ...
│ ├── Binaries -> ../../bin
│ ├── Devices -> ../../dev
│ ├── Sys -> ../../sys
│ ├── Temporary -> ../../tmp
│ └── Config -> ../../etc
└── Volumes
└── USB3.0
In the Cache/Packages
directory each file of xxxxxxxx
will be the Packages file of the distro
for each url specified in /etc/apt/sources.list
file. Each seperate xxxxxxxx
file is for a different
URL. The index file in that directory will be in the format:
filename url codename subtype
e.g.
0 http://deb.debian.org/debian stable main
1 http://yeb.yebian.borg/whatever v1 non-free-firmware