diff --git a/src/cli/global/update.rs b/src/cli/global/update.rs index 7824091bb2..167b7c0b50 100644 --- a/src/cli/global/update.rs +++ b/src/cli/global/update.rs @@ -66,6 +66,9 @@ pub async fn execute(args: Args) -> miette::Result<()> { .expose_executables_from_environment(env_name) .await?; + // Sync shortcuts + state_changes |= project.sync_shortcuts(env_name).await?; + Ok(state_changes) } diff --git a/src/global/common.rs b/src/global/common.rs index 29971fa96e..f8c7efd097 100644 --- a/src/global/common.rs +++ b/src/global/common.rs @@ -783,10 +783,10 @@ pub(crate) fn shortcut_sync_status( .swap_take(&record.repodata_record.package_record.name) .is_some() { - if !has_installed_system_menus { - // The package record isn't installed, but it is requested - records_to_install.push(record); - } + // Always install shortcut. + // Because pixi doesn't know if it is already installed, + // and still exists in system. + records_to_install.push(record); } else if has_installed_system_menus { // The package record is installed, but not requested records_to_uninstall.push(record);