@@ -557,6 +557,21 @@ bool DebListModel::slotUninstallPackage(int index)
557557
558558 m_currentTransaction = transsaction; // 保存trans指针
559559
560+ #ifdef ENABLE_QAPT_SETENV // Qt5环境且qapt >= 3.0.5.1-1-deepin1,支持setEnvVariable
561+ QProcessEnvironment env = QProcessEnvironment::systemEnvironment ();
562+ QVariantMap map;
563+
564+ m_currentTransaction = transsaction; // 保存trans指针
565+ // 获取当前真实用户信息
566+ QString currentUser = env.value (" USER" );
567+ // 如果SUDO_USER存在,说明当前是通过sudo启动的
568+ QString realUser = env.value (" SUDO_USER" );
569+ if (realUser.isEmpty ())
570+ realUser = currentUser;
571+ map.insert (" SUDO_USER" , realUser);
572+ transsaction->setEnvVariable (map);
573+ #endif
574+
560575 qCDebug (appLog) << " Starting uninstall transaction for package:" << packageId;
561576 transsaction->run (); // 开始卸载
562577
@@ -1238,6 +1253,19 @@ void DebListModel::installDebs()
12381253
12391254 m_currentTransaction = transaction;
12401255
1256+ #ifdef ENABLE_QAPT_SETENV // Qt5环境且qapt >= 3.0.5.1-1-deepin1,支持setEnvVariable
1257+ QProcessEnvironment env = QProcessEnvironment::systemEnvironment ();
1258+ QVariantMap map;
1259+
1260+ // 获取当前真实用户信息
1261+ QString currentUser = env.value (" USER" );
1262+ // 如果SUDO_USER存在,说明当前是通过sudo启动的
1263+ QString realUser = env.value (" SUDO_USER" );
1264+ if (realUser.isEmpty ())
1265+ realUser = currentUser;
1266+ map.insert (" SUDO_USER" , realUser);
1267+ m_currentTransaction->setEnvVariable (map);
1268+ #endif
12411269 qCDebug (appLog) << " Running current transaction" ;
12421270 m_currentTransaction->run ();
12431271}
0 commit comments