商店安装软件报错
Tofloor
poster avatar
s32967326
deepin
2019-03-18 05:02
Author
本帖最后由 Iceyer 于 2019-3-26 11:27 编辑
  1. 命令行打开商店, 报错。
  2. jeesk@jeesk-PC:~$ deepin-appstore -c
    "dtkwidget2" can not find qm files
  3. "deepin-appstore" can not find qm files
  4. 2019-03-17, 20:59:05.562 [Debug  ] [package_manager.cpp  dstore::PackageManager::Install     154] "dpk://deb/apps.com.zhixuewang" "apps.com.zhixuewang" "智学网"
  5. 2019-03-17, 20:59:05.562 [Debug  ] [apt_package_manager.cpp dstore::AptPackageManager::Install  301] "dpk://deb/apps.com.zhixuewang" "apps.com.zhixuewang" "智学网"
Copy the Code
, 于是我从Deepin源代码clone 下来研究发现:
PMResult AptPackageManager::Install(const QList<Package> &packages)
{
    Q_D(AptPackageManager);

    QMap<QString, QVariant> result;

    for (auto &package : packages) {
        qDebug() << package.packageURI << package.dpk.getID() << package.localName;
        const QDBusPendingReply<QDBusObjectPath> reply =
            d->deb_interface_->Install(package.localName, package.dpk.getID());

        while (!reply.isFinished()) {
            qApp->processEvents();
        }

        if (reply.isError()) {
            qDebug() << reply.error();
            return PMResult::dbusError(reply.error());
        }

        result.insert(package.packageURI, reply.value().path());
    }

    qDebug() << result;
    return PMResult::warp(result);

},  由于github上面这个项目的商店地址竟然写的是, 于是我找到了商店的真实地址,但是无法打开, 我猜想上面的异常是不是网络的问题呀?
#include "base/consts.h"
namespace dstore {

const char kAppName[] = "deepin-appstore";

#ifndef NDEBUG
const char kIndexPage[] = "http://localhost:4000/";
#else
const char kIndexPage[] = "rcc://web/index.html";
#endif  // NDEBUG
QString GetCacheDir() {
  const char kAppCacheDir[] = ".cache/deepin/deepin-appstore";
  return QDir::home().absoluteFilePath(kAppCacheDir);
}

}  // namespace dstore


Reply Favorite View the author
All Replies
avatar
s32967326
deepin
2019-03-18 05:06
#1
Reply View the author
avatar
electricface
deepin
2019-03-18 18:25
#2
执行命令

  1. gdbus call -y -d com.deepin.lastore -o /com/deepin/lastore -m com.deepin.lastore.Manager.InstallPackage bash bash
Copy the Code


然后看看输出
Reply View the author
avatar
s32967326
deepin
2019-03-21 06:21
#3

  1. jeesk@jeesk-PC:~$ gdbus call -y -d com.deepin.lastore -o /com/deepin/lastore -m com.deepin.lastore.Manager.InstallPackage bash bash
  2. Error: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 3 matched rules; type="method_call", sender=":1.96" (uid=1000 pid=8895 comm="gdbus call -y -d com.deepin.lastore -o /com/deepin" label="unconfined") interface="com.deepin.lastore.Manager" member="InstallPackage" error name="(unset)" requested_reply="0" destination="com.deepin.lastore" (uid=0 pid=7317 comm="/usr/bin/lastore-daemon " label="unconfined")
  3. jeesk@jeesk-PC:~$ gdbus call -y -d com.deepin.lastore -o /com/deepin/lastore -m com.deepin.lastore.Manager.InstallPackage bash bash
  4. Error: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 3 matched rules; type="method_call", sender=":1.97" (uid=1000 pid=8898 comm="gdbus call -y -d com.deepin.lastore -o /com/deepin" label="unconfined") interface="com.deepin.lastore.Manager" member="InstallPackage" error name="(unset)" requested_reply="0" destination="com.deepin.lastore" (uid=0 pid=7317 comm="/usr/bin/lastore-daemon " label="unconfined")
  5. jeesk@jeesk-PC:~$
Copy the Code

Reply View the author
avatar
electricface
deepin
2019-03-21 17:14
#4
也许是用户 uid=1000 不在组 sudo 中。你得想办法加入 sudo 组,

  1. usermod -a -G sudo $username
Copy the Code

Reply View the author
avatar
s32967326
deepin
2019-03-26 09:02
#5
https://bbs.deepin.org/post/175666
也许是用户 uid=1000 不在组 sudo 中。你得想办法加入 sudo 组,
  1. 2019-03-26, 01:01:38.991 [Debug  ] [package_manager.cpp  dstore::PackageManager::Install     154] "dpk://deb/gimp" "gimp" "GIMP"
  2. 2019-03-26, 01:01:38.991 [Debug  ] [apt_package_manager.cpp dstore::AptPackageManager::Install  301] "dpk://deb/gimp" "gimp" "GIMP"
  3. 2019-03-26, 01:01:38.992 [Debug  ] [apt_package_manager.cpp dstore::AptPackageManager::Install  310] QDBusError("com.deepin.DBus.Error.Unnamed", "Rejected send message, 3 matched rules; type=\"method_call\", sender=\":1.99\" (uid=1000 pid=6241 comm=\"/usr/bin/deepin-appstore-daemon \" label=\"unconfined\") interface=\"com.deepin.lastore.Manager\" member=\"InstallPackage\" error name=\"(unset)\" requested_reply=\"0\" destination=\"com.deepin.lastore\" (uid=0 pid=5602 comm=\"/usr/bin/lastore-daemon \" label=\"unconfined\")")
Copy the Code


还是不行
Reply View the author
avatar
s32967326
deepin
2019-03-26 09:06
#6
https://bbs.deepin.org/post/175666
也许是用户 uid=1000 不在组 sudo 中。你得想办法加入 sudo 组,

我使用 deepin-appstore -c打开商店的时候是无法安装的。  
但是 使用  sudo deepin-appstore -c  , 打开商店安装成功。  这是为何讶
Reply View the author
avatar
electricface
deepin
2019-03-29 17:27
#7
lastore-daemon 的dbus 服务确实有限制,只有允许在 sudo 组中的用户调用。

执行命令的输出是什么吗?

  1. groups $USER
Copy the Code


你对系统做了什么特殊的配置吗?

看你的 /etc/sudoers 配置文件是什么?

  1. sudo cat /etc/sudoers
Copy the Code


最好能上传详细日志

  1. sudo deepin-feedback-cli
Copy the Code
Reply View the author
avatar
lizijun
deepin
2020-02-20 01:06
#8
楼主,我跟你一样的情况必须sudo deepin-appstore -c 启动才能下载,请问后来如何解决的
Reply View the author
avatar
s32967326
deepin
2020-02-23 19:28
#9
https://bbs.deepin.org/post/175666
楼主,我跟你一样的情况必须sudo deepin-appstore -c 启动才能下载,请问后来如何解决的 ...

记得把自己加入sudoer 组, 先前我倒腾docker, 把docker 加进去了, 把自己的用户的suder 删除掉了
Reply View the author