@@ -424,8 +424,18 @@ void DebListModel::slotUninstallPackage(const int index)
424424 // 卸载结束之后 删除指针
425425 connect (transsaction, &Transaction::finished, transsaction, &Transaction::deleteLater);
426426
427- m_currentTransaction = transsaction; // 保存trans指针
427+ QProcessEnvironment env = QProcessEnvironment::systemEnvironment ();
428+ QVariantMap map;
428429
430+ m_currentTransaction = transsaction; // 保存trans指针
431+ // 获取当前真实用户信息
432+ QString currentUser = env.value (" USER" );
433+ // 如果SUDO_USER存在,说明当前是通过sudo启动的
434+ QString realUser = env.value (" SUDO_USER" );
435+ if (realUser.isEmpty ())
436+ realUser = currentUser;
437+ map.insert (" SUDO_USER" , realUser);
438+ transsaction->setEnvVariable (map);
429439 transsaction->run (); // 开始卸载
430440}
431441
@@ -896,6 +906,18 @@ void DebListModel::installDebs()
896906
897907 m_currentTransaction = transaction;
898908
909+ QProcessEnvironment env = QProcessEnvironment::systemEnvironment ();
910+ QVariantMap map;
911+
912+ // 获取当前真实用户信息
913+ QString currentUser = env.value (" USER" );
914+ // 如果SUDO_USER存在,说明当前是通过sudo启动的
915+ QString realUser = env.value (" SUDO_USER" );
916+ if (realUser.isEmpty ())
917+ realUser = currentUser;
918+ map.insert (" SUDO_USER" , realUser);
919+ m_currentTransaction->setEnvVariable (map);
920+
899921 m_currentTransaction->run ();
900922}
901923
0 commit comments