diff options
author | davidovski <david@davidovski.xyz> | 2022-03-31 00:12:31 +0100 |
---|---|---|
committer | davidovski <david@davidovski.xyz> | 2022-03-31 00:12:31 +0100 |
commit | dc7e66b46601c34d70945701f929135736ec1392 (patch) | |
tree | c03d3586741d702cda22b5431d43b7ace9f865af /notes.txt | |
parent | f6f10ace48e249b0f1d6da28ad0a03b65b92e306 (diff) |
added install system script
Diffstat (limited to 'notes.txt')
-rw-r--r-- | notes.txt | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/notes.txt b/notes.txt deleted file mode 100644 index db9a03e..0000000 --- a/notes.txt +++ /dev/null @@ -1,118 +0,0 @@ -/etc/xipkg.conf - for xipkg config - -in config define repo sources like this: - <source name>: <url or filepath> - -eg: - davidovski: https://xi.davidovski.xyz/repo/ - - -then specify repos that should be loaded: - repos: core extra other - -/var/lib/xipkg - to contain all working files: - -/var/lib/xipkg/packages - "working dir" to keep xipkg files and xipkg.info - will look something like this: - packages/ - core/ - extra/ - - -/var/lib/xipkg/keychain -place to store publickeys for sources. - -/var/lib/xipkg/installed/<pkg name> - /info - info about the package that has been installed to the system - /files - text file with all the files that it installed to the sysetm (for later removal purposes) - - -sync -------- - -go to each source and list packages in a repo -find the most popular package hashes - - -download all keys - -install -------- - -if a xipkg file is specified and there is a corresponding .info as well, it will install it directly -if its a url, then download the xipkg file and its .info - -if its a package name: - check if it exists, - if that package name exists in multiple repos, then prompt to ask which repo to take from - -to check a package is already installed, search for its name in /var/lib/xipkg/installed - -to install package need to: - - find the package in a place in /var/lib/xipkg/packages - - find all dependencies and subdependecies in a tree, and repeat install for any that are missing - - - aquire .xipkg from correct source (look for the xipkg.info.source) - - - verify that the hash of xipkg is right - - - check against every publickey in /var/lib/xipkg/keychain (maybe better ideas?) - - - untar the xipkg - - list all package's files in xipkg into /var/lib/xipkg/installed/<pkg name>/files - - copy the pkginfo to /var/lib/xipkg/installed/<pkg name> - ( do not use a symlink since later syncs can make the information inacurate) - - copy all the files into their place on the system - (actually install the package) - - - make an install reciept that contains: - * the source that the package was downloaded from - * the key that was used to validate the package - * the date the package was installed - * the user that installed the package - * if the package was installed as a dependency - * other info? - - - ?? run some post install scripts?? - - ?? clean up?? - -remove ------- - -find the package's installed files in /var/lib/xipkg/installed/<pkg name>/files and remove them from the system -(? maybe check if other packages need them, and dont remove then?) - -remove all the info from /var/lib/xipkg/installed/<pkg name> - -(? check ) - -upgrade -------- -do a sync -if a package is specified, only upgrade that one package - -packages need updates when the hash listed in the package sync is different to the installed - -create a dependency tree and try upgrade core packages first (shouldnt matter really, since upgrading shouldnt have any dependencies other than xipkg and its subdependencies) - -to upgrade a package find that package in the repo and compare its pkginfo with the installed's package info - -if the VERSION_HASH is different then upgrade (guessing newer) -if the CHECKSUM is different AND the date is newer then upgrade (a different checksum with an older date could be a mistake) - -(cant rely only on version hash, because the way that the package was built can be changed) - - -force-upgrade ------------- -(! needs a better name) - -just removes the package and then installs it again - -file ------- -searches for a file to install -(!!! REQUIRES SOME KIND OF FILE DATABASE) |