语言

Menu
Sites
Language
How does tizen manages rpm packages?
I installed platform image on a target device, image files were generated by MIC, Now what I want to do is replacing one rpm package which is pre-installed on target. How can I replace one rpm on the target? I guess that tizen package manager owns and manages some package database disregarding rpm database, (maybe sqllite?) So maybe, 'mic' tools already installed related package/app info package database for that. so I don't think only removing an rpm package by doing 'rpm -e xxx.rpm` shouldn't work well. What is the proper way to install/remove a native application rpm? I found a document - https://wiki.tizen.org/Manually_installing_apps but this is only for 'wrt-installer' tool.
编辑者为: Anonymous 11 10月, 2017
查看选择的答案

响应

3 回复

I found that 'pkgcmd', front-end CLI tool executes 'tpk-backend' for handling rpm packages,

1. when I run tpk-backend tool directly, this tool showed me the package I want to remove has "unremovable" mark:
$ tpk-backend  --force-remove -k "uninstall" -d XXX
  --> "This package is not removable"

2. so i tried to do this. but now the backend says the package does not have manifest file.
$ tpk-backend  --force-remove -d
--> "No manifest file exists"

 

Questions:
- Should I re-create the whole target image even if I just want to replace one pre-installed(and unremovable) package?
- Where can I find some docs about the internals of package management?

 

 

 

 

 

 

Armaan-Ul- Islam

Hello,

After seeing your post, I've looked in Tizen documentations available on the Web, But didn't find anything so called "Ideal rpm removal" process or something related.

 

Anyways, You can send a mail to the Tizen team, they may share something about your query.

Mailing Lists

Mailing List Guidelines

 

If you got some progress, Please Share updates on this post here. 

Mark as answer

Here is an incomplete guide about rpm package management. incomplete is better than nothing.

1. remove pre-load type rpm package and manifest.

$ rpm -e <rpm-package-name>

$ tpk-backend --force-remove --preload -d <tizen-package-name>

* tizen-package-name is described in manifest file

 

2. install pre-load type rpm package and install manifest into tizen package database:

$ rpm -ivh XXX.rpm

$ tpk-backend -y XXX --preload

 

* in tizen platform, rpm package is managed along two systems respectively: rpm db and tizen package db.

*  'preload' type application is pre-installed by mic and read-only.

* package installation directory is differed by its type. (e.g. rw = /opt/...,  pre-load = /usr/...) so I need specify '--preload' argument to utils.

* tpk-backend is amd's backend util which executes installation and removal of tizen package in package database(sql lite),.

* I had to dig into AMD and launchpad source code, I personally think the application management system of tizen is uselessly complicated, not well integrated yet, and scattered across several packages: AMD, AUL, launchpad, tpk, ...