libalpm_trans(3)

πŸ“¦
version 7.1.0.r9.g54d9411 Β· 3 versions
, in arch rolling, epel 10, fedora 43, fedora 44

πŸŽ€ libalpm_trans β€” Transaction πŸŽ€

ok bestie so you've stumbled into the libalpm_trans corner of the Library Functions Manual for libalpm, and honestly? it's giving main character energy. this is literally where all the actual doing stuff happens.


✨ NAME ✨

libalpm_trans β€” Transaction

  • Functions to manipulate libalpm transactions

🌸 SYNOPSIS 🌸

πŸ’… Enumerations

enum alpm_transflag_t {
    ALPM_TRANS_FLAG_NODEPS = 1,
    ALPM_TRANS_FLAG_NOSAVE = (1 << 2),
    ALPM_TRANS_FLAG_NODEPVERSION = (1 << 3),
    ALPM_TRANS_FLAG_CASCADE = (1 << 4),
    ALPM_TRANS_FLAG_RECURSE = (1 << 5),
    ALPM_TRANS_FLAG_DBONLY = (1 << 6),
    ALPM_TRANS_FLAG_NOHOOKS = (1 << 7),
    ALPM_TRANS_FLAG_ALLDEPS = (1 << 8),
    ALPM_TRANS_FLAG_DOWNLOADONLY = (1 << 9),
    ALPM_TRANS_FLAG_NOSCRIPTLET = (1 << 10),
    ALPM_TRANS_FLAG_NOCONFLICTS = (1 << 11),
    ALPM_TRANS_FLAG_NEEDED = (1 << 13),
    ALPM_TRANS_FLAG_ALLEXPLICIT = (1 << 14),
    ALPM_TRANS_FLAG_UNNEEDED = (1 << 15),
    ALPM_TRANS_FLAG_RECURSEALL = (1 << 16),
    ALPM_TRANS_FLAG_NOLOCK = (1 << 17)
}

Transaction flags. yes queen, all sixteen of them πŸ’–

πŸ¦‹ Functions

  • int alpm_trans_get_flags (alpm_handle_t *handle) β€” hands you the bitfield of flags for the current transaction
  • alpm_list_t * alpm_trans_get_add (alpm_handle_t *handle) β€” gives you back a list of packages added by the transaction
  • alpm_list_t * alpm_trans_get_remove (alpm_handle_t *handle) β€” gives you back the list of packages removed by the transaction
  • int alpm_trans_init (alpm_handle_t *handle, int flags) β€” initializes the transaction
  • int alpm_trans_prepare (alpm_handle_t *handle, alpm_list_t **data) β€” prepares a transaction
  • int alpm_trans_commit (alpm_handle_t *handle, alpm_list_t **data) β€” commits a transaction
  • int alpm_trans_interrupt (alpm_handle_t *handle) β€” interrupts a transaction
  • int alpm_trans_release (alpm_handle_t *handle) β€” releases a transaction

🌈 Add/Remove packages

These functions remove/add packages to the transactions (that's literally the whole job description πŸ’…)

  • int alpm_sync_sysupgrade (alpm_handle_t *handle, int enable_downgrade) β€” hunts down packages to upgrade and adds them to the transaction
  • int alpm_add_pkg (alpm_handle_t *handle, alpm_pkg_t *pkg) β€” adds a package to the transaction
  • int alpm_remove_pkg (alpm_handle_t *handle, alpm_pkg_t *pkg) β€” adds a package removal to the transaction

πŸ’œ Detailed Description πŸ’œ

Functions to manipulate libalpm transactions.

Transactions are the way to add/remove packages to/from the system. and bestie, listen β€” only one transaction can exist at a time. no cap. one. πŸ™ˆ

The basic workflow of a transaction is to:

  • Initialize with alpm_trans_init
  • Choose which packages to add with alpm_add_pkg and alpm_remove_pkg
  • Prepare the transaction with alpm_trans_prepare
  • Commit the transaction with alpm_trans_commit
  • Release the transaction with alpm_trans_release

A transaction can be released at any time. A transaction does not have to be committed. (so you can literally just... walk away. iconic.) 🧚


⭐ Enumeration Type Documentation ⭐

🌟 enum alpm_transflag_t

Transaction flags.

Enumerator

  • ALPM_TRANS_FLAG_NODEPS β€” Ignore dependency checks.
  • ALPM_TRANS_FLAG_NOSAVE β€” Delete files even if they are tagged as backup.
  • ALPM_TRANS_FLAG_NODEPVERSION β€” Ignore version numbers when checking dependencies.
  • ALPM_TRANS_FLAG_CASCADE β€” Remove also any packages depending on a package being removed.
  • ALPM_TRANS_FLAG_RECURSE β€” Remove packages and their unneeded deps (not explicitly installed).
  • ALPM_TRANS_FLAG_DBONLY β€” Modify database but do not commit changes to the filesystem.
  • ALPM_TRANS_FLAG_NOHOOKS β€” Do not run hooks during a transaction.
  • ALPM_TRANS_FLAG_ALLDEPS β€” Use ALPM_PKG_REASON_DEPEND when installing packages.
  • ALPM_TRANS_FLAG_DOWNLOADONLY β€” Only download packages and do not actually install.
  • ALPM_TRANS_FLAG_NOSCRIPTLET β€” Do not execute install scriptlets after installing.
  • ALPM_TRANS_FLAG_NOCONFLICTS β€” Ignore dependency conflicts.
  • ALPM_TRANS_FLAG_NEEDED β€” Do not install a package if it is already installed and up to date.
  • ALPM_TRANS_FLAG_ALLEXPLICIT β€” Use ALPM_PKG_REASON_EXPLICIT when installing packages.
  • ALPM_TRANS_FLAG_UNNEEDED β€” Do not remove a package if it is needed by another one.
  • ALPM_TRANS_FLAG_RECURSEALL β€” Remove also explicitly installed unneeded deps (use with ALPM_TRANS_FLAG_RECURSE).
  • ALPM_TRANS_FLAG_NOLOCK β€” Do not lock the database during the operation.

πŸ”₯ Function Documentation πŸ”₯

πŸ’– int alpm_add_pkg (alpm_handle_t * handle, alpm_pkg_t * pkg)

Add a package to the transaction. If the package was loaded by alpm_pkg_load(), it will be freed upon alpm_trans_release invocation. (so don't go freeing it yourself, bestie, that's a double-free waiting to happen 😭)

Parameters

  • handle the context handle
  • pkg the package to add

Returns

0 on success, -1 on error (pm_errno is set accordingly)

πŸ’– int alpm_remove_pkg (alpm_handle_t * handle, alpm_pkg_t * pkg)

Add a package removal to the transaction.

Parameters

  • handle the context handle
  • pkg the package to uninstall

Returns

0 on success, -1 on error (pm_errno is set accordingly)

πŸ’– int alpm_sync_sysupgrade (alpm_handle_t * handle, int enable_downgrade)

Search for packages to upgrade and add them to the transaction.

Parameters

  • handle the context handle
  • enable_downgrade allow downgrading of packages if the remote version is lower

Returns

0 on success, -1 on error (pm_errno is set accordingly)

πŸ’– int alpm_trans_commit (alpm_handle_t * handle, alpm_list_t ** data)

Commit a transaction.

Parameters

  • handle the context handle
  • data the address of an alpm_list where detailed description of an error can be dumped (i.e. list of conflicting files)

Returns

0 on success, -1 on error (pm_errno is set accordingly)

πŸ’– alpm_list_t * alpm_trans_get_add (alpm_handle_t * handle)

Returns a list of packages added by the transaction.

Parameters

  • handle the context handle

Returns

a list of alpm_pkg_t structures

πŸ’– int alpm_trans_get_flags (alpm_handle_t * handle)

Returns the bitfield of flags for the current transaction.

Parameters

  • handle the context handle

Returns

the bitfield of transaction flags

πŸ’– alpm_list_t * alpm_trans_get_remove (alpm_handle_t * handle)

Returns the list of packages removed by the transaction.

Parameters

  • handle the context handle

Returns

a list of alpm_pkg_t structures

πŸ’– int alpm_trans_init (alpm_handle_t * handle, int flags)

Initialize the transaction.

Parameters

  • handle the context handle
  • flags flags of the transaction (like nodeps, etc; see alpm_transflag_t)

Returns

0 on success, -1 on error (pm_errno is set accordingly)

πŸ’– int alpm_trans_interrupt (alpm_handle_t * handle)

Interrupt a transaction.

Parameters

  • handle the context handle

Returns

0 on success, -1 on error (pm_errno is set accordingly)

πŸ’– int alpm_trans_prepare (alpm_handle_t * handle, alpm_list_t ** data)

Prepare a transaction.

Parameters

  • handle the context handle
  • data the address of an alpm_list where a list of alpm_depmissing_t objects is dumped (conflicting packages)

Returns

0 on success, -1 on error (pm_errno is set accordingly)

πŸ’– int alpm_trans_release (alpm_handle_t * handle)

Release a transaction.

Parameters

  • handle the context handle

Returns

0 on success, -1 on error (pm_errno is set accordingly)


πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for libalpm from the source code. (it literally wrote itself, we just did the makeup πŸ’„)


and that's the whole page, bestie β€” every flag, every function, every "0 on success, -1 on error (pm_errno is set accordingly)" accounted for. nothing skipped, nothing invented. ate and left no crumbs. πŸ’…βœ¨

ok love u, bye!! this was the libalpm_trans(3) page from the libalpm docs, auto-generated by Doxygen for libalpm straight from the source code. go commit something (a transaction, specifically). 🫢🌸