-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Faster package count on Alpine Linux #170
Conversation
How does the |
The file contains information about the installed packages, where the individual packages are separated by blank lines. This is an example from one of my testing VMs: I have tested this method with various amounts of packages installed and so far it was accurate without the need to correct for off-by-one errors. |
Great, thanks for the attachment! Let's merge it. |
* Fix Armv7 build (#158) * Add armv7 build target * Fix mismatched types for pointer width 32 * Use `sh` instead of `python` for `which` assertion * Replace mach with mach2 (#157) * feat: add support for RPM `ndb` databases (#159) * feat: add support for RPM `ndb` databases * chore: always try sqlite before librpm * chore: remove `rpm` feature * fix: librpm call not lazily evaluated * Add `librpm` dependency note to README (#160) * Update the changelog * Bump version to 7.1.0 * Fix i686 build (#162) closes #161 * Add Sonoma to macos_version_to_name (#163) * BREAKING CHANGE: Change BatteryReadout::health return value to u8 There's no particular reason why one should allocate 64 bits for a value that can only be <= 100. As a bonus, ceil() the return value before finally casting to u8. * Update BatteryReadout::health function signature for other operating systems besides Linux. * Added general detection for wayland compositors (#164) * Upgrade dependencies to their latest versions * Update changelog Make some formatting changes as well. * Add missing generic argument sqlite's changed a bit between releases. * Bump version to 7.2.0 * Add missing second generic argument to sqlite read() call * Remove unneeded argument to unistd::gethostname function call * Remove unused variable * Refactor obsolete find_ifa function * Bump version to 7.2.1 * Bump vergen version * Use gitcl feature of vergen This depends on the git binary, more ubiquituous than the libgit2 bindings, so it should technically work on every platform we support. * Refactor the old vergen interface * Add new entry to the changelog * Update version to 7.2.2 * Replace flatten() calls with map_while(Result::ok) * Fix Readouts struct's network field type Closes: #168 * Improve CI workflow (#169) * Replace discontinued actions-rs * Split cargo fmt and clippy into their own CI job * Faster package count on Alpine Linux (#170) * Bump version to 7.2.3 * added macos 15 version name (#171) https://www.apple.com/newsroom/2024/06/macos-sequoia-takes-productivity-and-intelligence-on-mac-to-new-heights/ * Removed panic if local gpu db is not able to be read (#173) * Add support for the Nix package manager (#172) Added support for the Nix package manager using Nix' SQLite database. * Bump version and update changelog * linux: Safely exit when homebrew is not installed * Improve linuxbrew keepme safeguard * Remove unused import * Bump version to 7.3.1 * Allow disk_space function to accept a path argument (#156) BREAKING CHANGE: allow disk_space function to accept a path argument - Bump version and update changelog - Change disk_space path argument to be of type &Path and check path exists in shared::disk_space - Add missing import for openwrt --------- Co-authored-by: Adrian Groh <50576978+Gobidev@users.noreply.github.com> Co-authored-by: Silas Groh <silas.groh@t-online.de> Co-authored-by: grtcdr <tahaaziz.benali@esprit.tn> Co-authored-by: Rex Ng <rex.ky.ng@gmail.com> Co-authored-by: Absolpega <106615943+Absolpega@users.noreply.github.com> Co-authored-by: grtcdr <ba.tahaaziz@gmail.com> Co-authored-by: Matthias Baer <matthiasbaer@bluewin.ch> Co-authored-by: Rex Ng <timescam@duck.com> Co-authored-by: coolGi <57488297+coolGi2007@users.noreply.github.com>
On Alpine Linux, packages can be counted by counting the amount of empty lines in
/lib/apk/db/installed
.On my test VM, this takes about 5ms compared to 80ms with the previous method with 82 packages installed.
I left the previous counting method as fallback, in case there are systems that use
apk
where the new one does not work.Related to Gobidev/pfetch-rs#48