[img]

Frequently Asked Questions

[img]

Back to the main page

Frequently asked questions

How complete are the backends?

Methods

 
apt
apt2
alpm
box
conary
opkg
pisi
poldek
smart
yum
yum2
zypp
Resolve [no] [no] [no] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [yes]
RefreshCache [yes] [yes] [no] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [yes]
GetUpdates [no] [yes] [no] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [yes]
UpdateSystem [no] [yes] [no] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [yes]
SearchName [yes] [yes] [yes] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [yes]
SearchDetails [yes] [yes] [no] [yes] [no] [no] [yes] [no] [yes] [yes] [yes] [yes]
SearchFile [no] [no] [no] [yes] [no] [no] [yes] [no] [no] [yes] [yes] [yes]
SearchGroup [no] [no] [no] [no] [no] [no] [yes] [no] [no] [yes] [yes] [yes]
InstallPackage [no] [yes] [yes] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [yes]
InstallFile [no] [no] [no] [yes] [no] [no] [yes] [no] [yes] [yes] [yes] [no]
RemovePackage [no] [yes] [yes] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [yes]
UpdatePackage [no] [no] [no] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [no]
GetDepends [no] [no] [no] [yes] [no] [no] [yes] [no] [yes] [yes] [yes] [yes]
GetRequires [no] [no] [no] [yes] [yes] [no] [yes] [no] [no] [yes] [yes] [yes]
GetDescription [yes] [yes] [no] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [yes]
GetFiles [no] [no] [no] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [yes]
GetUpdateDetail [no] [no] [no] [no] [no] [no] [no] [no] [no] [yes] [yes] [no]
GetRepoList [no] [no] [yes] [yes] [no] [no] [yes] [no] [yes] [yes] [yes] [yes]
RepoEnable [no] [no] [no] [yes] [no] [no] [no] [no] [yes] [yes] [yes] [yes]
RepoSetData [no] [no] [no] [yes] [no] [no] [yes] [no] [no] [yes] [yes] [no]
Cancel [no] [no] [no] [no] [yes] [no] [yes] [no] [no] [yes] [no] [no]
ServicePack [no] [no] [no] [no] [no] [no] [no] [no] [no] [no] [no] [no]

Filters

 
apt
apt2
alpm
box
conary
opkg
pisi
poldek
smart
yum
yum2
zypp
Installed [no] [no] [no] [yes] [yes] [no] [yes] [no] [yes] [yes] [yes] [yes]
Development [no] [no] [no] [yes] [no] [no] [yes] [no] [no] [yes] [yes] [no]
GUI [no] [no] [no] [yes] [no] [no] [yes] [no] [no] [yes] [yes] [no]
Free [no] [no] [no] [no] [no] [no] [no] [no] [no] [no] [no] [no]
Visible [no] [no] [no] [no] [no] [no] [no] [no] [no] [no] [no] [no]
Supported [no] [no] [no] [no] [no] [no] [no] [no] [no] [no] [no] [no]

Why doesn't PackageKit work with SELinux?

packagekitd is not recognized by SELinux yet. Until the policy is fixed to handle system activation, you'll have to run in permissive mode, rather than enforcing.

What if the backend package manager doesn't support percentage updates?

You don't have to have a backend that supports percentage updates. If you don't know the progress, just emit NoPercentageUpdates and then the UI should just do the right thing and spin backwards and forwards.

Why are the remaining times sometimes not present or wildly wrong?

The remaining time to completion of the transaction is calculated using an average time of the time between percentage updates points, extrapolated to 100%. This means that backends that give accurate and frequent percentage-changed signals will get accurate times.

If a backend updates the percentage using very course updates (e.g. 20%, 40%, 60%, 80%, 100%) then the remaining time algorithm will not perform well. Similarly, if the duration of 0% to 50% takes 2 minutes and 50% to 100% takes 10 minutes then at first the time will be reported under the true time to completion. It is up to the backends to map the transaction progress to fine-granularity accurate percentage updates, at least as best as possible.

With all the differences between backends, how will PackageKit support all the different options?

Backends don't have to support all options of all methods. Just set an error and return false if not implemented.

But error codes are different on each backend?

Error codes have to be standardized so they can be localized. The error detail field can just be the untranslatable output. If you are creating a backend and you need another error enum, mention it and we can add it to the supported list.

How will PackageKit handle installation an application that needs user interaction?

Upgrading, installing or removing packages has to be 100% silent.

The user cannot be prompted mid-transaction for questions as these will not be handled in PackageKit. The backend should do the right thing, as these questions mean very little to the average user.

The reasons for this are as follows:

EULAs or other agreements will have to be agreed to before the transaction is processed. EULAs are legally questionable (because the files are already installed) and only the user that installing the software is ever shown them. If EULAs are required, they should be shown per-user - i.e. the first time an application is run.

PackageKit will not install packages with broken maintainer scripts that require a stdin. If this is attempted the backend should detect this and error out of the transaction with PK_ERROR_ENUM_BROKEN_PACKAGE. We cannot and will not ask the user for random standard input.

See the Debian PackageKit wiki for more details and further discussion.

If the transaction needs to tell the user something, the Message() method can be used that will localise the message up the stack, and also give the user a way of ignoring duplicate messages of this type.

Does PackageKit replace up2date?

PackageKit does not replace up2date. PackageKit is a way for users to interact with the packaging system, not for an administrator to install software on remote machines.

Is PackageKit a system daemon, always running and using resources?

PackageKit is not yet another system daemon. It quits when not doing anything, and only starts when something wants information or a task completed.

How does PackageKit handle dependencies?

PackageKit does not do dependency resolution. This problem has already been solved by the backend systems and we don't really want to re-invent the wheel.

PackageKit does not have the fine-grained API to do everything. For instance, synaptic should still use libapt as can do much more than can be provided by PackageKit.

Does PackageKit replace the Red Carpet service?

PackageKit is not a replacement to red carpet. Red carpet was really great and years ahead of it's time, but tried to do everything package related on the system, and moved onto the enterprise centralized management model. Although cool, this latter point made things too political in my opinion.

How fast is PackageKit?

PackageKit is really fast. It takes about 1 second to search for installed and available packages with "power" in the description - no blocking of the UI happens at all as it's all asynchronous. All the applications start instantly with no root password needed at startup.

How does PackageKit work with multiple users?

PackageKit is designed from the ground up to work with fast user switching and logging in and out of sessions during upgrades. You can start a system upgrade, log out, log in as another user, and be notified when the upgrade is complete, all without risking your rpmdb.

Can users still use their normal package managers and backends, such as Yum, APT or Conary?

PackageKit does not stop you using the low level tools yourself. You can use rpm and yum or dpkg and apt when PK is inactive (99.999% of the time) when you really need some command line love. No more fighting over yum, yum-updatesd, pup and pirut.

What is Hughsie's law?

A joke that started on IRC late one night in '07. Put formally it is: Authentication or license prompts can only be done before the transaction has started, and messages or notices about the transaction can only be shown after the transaction has completed.

How do I translate gnome-packagekit?

Please see the GNOME Translation Team web pages for how to contribute to GNOME localisation.

Is there an organization or corporation sponsoring development of PackageKit?

PackageKit is not sponsored by anyone. Whilst interning at Red Hat I spent a few days on the API and some UI designs, but all the coding is done in my free time.

Back to the main page