You need to sign in or sign up before continuing.
README.md 3.19 KB
Newer Older
Vitaly Lipatov's avatar
Vitaly Lipatov committed
1
# Etersoft EPM package manager
Vitaly Lipatov's avatar
Vitaly Lipatov committed
2

Vitaly Lipatov's avatar
Vitaly Lipatov committed
3 4
[![Packaging status](https://repology.org/badge/vertical-allrepos/eepm.svg)](https://repology.org/project/eepm/versions)

Vitaly Lipatov's avatar
Vitaly Lipatov committed
5 6
Really, EPM is a wrapper for any package manager used in your operating system.

7 8 9 10 11
Run
```
$ epm --help
```
to see list of all supported commands.
Vitaly Lipatov's avatar
Vitaly Lipatov committed
12

13 14
The main goal of the project is to provide the same package management interface
on all platforms.
Vitaly Lipatov's avatar
Vitaly Lipatov committed
15 16

You can use
17
```
Vitaly Lipatov's avatar
Vitaly Lipatov committed
18
# epmi NAME
19
```
Vitaly Lipatov's avatar
Vitaly Lipatov committed
20
or
21
```
Vitaly Lipatov's avatar
Vitaly Lipatov committed
22
# epm -i NAME
23
```
Vitaly Lipatov's avatar
Vitaly Lipatov committed
24
or
25
```
Vitaly Lipatov's avatar
Vitaly Lipatov committed
26
# epm install NAME
27 28
```
to install a package. It is just an alias for one command: install the package.
Vitaly Lipatov's avatar
Vitaly Lipatov committed
29 30 31 32
EPM will run `urpmi` on Mandriva, `apt install` on Ubuntu, `yum install` on Fedora,
or `apt-get install` on ALT Linux.

And it has a little intelligence, so EPM will first try to install a package file via
33
low level commands (`rpm` or `dpkg`) before using higher level commands (`yum`, `apt`).
Vitaly Lipatov's avatar
Vitaly Lipatov committed
34

35
Just try your comfort style for package management and carry your experience the same
Vitaly Lipatov's avatar
Vitaly Lipatov committed
36
to any platform. EPM will print out the real command it uses so you can learn from it.
Vitaly Lipatov's avatar
Vitaly Lipatov committed
37

Vitaly Lipatov's avatar
Vitaly Lipatov committed
38
EPM has support for repository management: repo list, repo add, repo remove, update commands.
Vitaly Lipatov's avatar
Vitaly Lipatov committed
39

Vitaly Lipatov's avatar
Vitaly Lipatov committed
40
Also EPM contains `serv` command to control system services in system independed manner.
Vitaly Lipatov's avatar
Vitaly Lipatov committed
41

42
Pay attention to the following useful commands:
Vitaly Lipatov's avatar
Vitaly Lipatov committed
43 44
* `epmqf <command name>` - query package(s) owning file
* `epmqp <word>` - search in the list of installed packages
Vitaly Lipatov's avatar
Vitaly Lipatov committed
45

46 47
`epmqf` can be helpful to get package name for any file or command in the system:
```
Vitaly Lipatov's avatar
Vitaly Lipatov committed
48 49 50 51 52 53 54 55
$ epmqf epmqf
Note: epmqf is placed as /usr/bin/epmqf
 $ rpm -qf /usr/bin/epmqf
eepm-1.1.0-alt2
Note: /usr/bin/epmqf is link to epm
Note: epm is placed as /usr/bin/epm
 $ rpm -qf /usr/bin/epm
eepm-1.1.0-alt2
56
```
Vitaly Lipatov's avatar
Vitaly Lipatov committed
57

Vitaly Lipatov's avatar
Vitaly Lipatov committed
58 59 60 61 62
Also you can use
`epm play` to install the application from the official site.

For example, run `epm play edge` to install Microsoft Edge browser in your system.

63
## Install on any system
64 65

Just run under root user:
Vitaly Lipatov's avatar
Vitaly Lipatov committed
66 67 68 69 70 71 72 73 74 75 76 77
```
# curl -sL https://eepm.ru/epm.sh | bash /dev/stdin ei
```

or using wget:

```
# wget -O- https://eepm.ru/epm.sh | bash /dev/stdin ei
```

or more long version:

78
```
79
# curl -s https://raw.githubusercontent.com/Etersoft/eepm/master/packed/epm.sh | bash /dev/stdin ei --auto
80
```
81

Vitaly Lipatov's avatar
Vitaly Lipatov committed
82 83
If you have no `curl` or `wget` on your system, just download file `https://raw.githubusercontent.com/Etersoft/eepm/master/packed/epm.sh`
and run in the download directory via bash:
84 85 86 87
```
# bash epm.sh ei
```

88 89 90
In a common case you can install eepm package manually:
`https://download.etersoft.ru/pub/Korinf/x86_64`

91
## How to add new distro support
92 93

For developers only:
94
1. Fix detection with `distro_info`
95 96 97
2. Add distro support in `set_pm_type` function
3. Implement every command in epm-* files
4. Ensure that `epm packages` and `epm --short packages` works correctly
Vitaly Lipatov's avatar
Vitaly Lipatov committed
98
(`epm package 'awk'` have to print packages with `awk` substring in their names)
Vitaly Lipatov's avatar
Vitaly Lipatov committed
99

Vitaly Lipatov's avatar
Vitaly Lipatov committed
100 101 102
## Informational resources
* https://wiki.archlinux.org/title/Pacman/Rosetta

103
See detailed description in Russian at
Vitaly Lipatov's avatar
Vitaly Lipatov committed
104
http://wiki.etersoft.ru/Epm
Vitaly Lipatov's avatar
Vitaly Lipatov committed
105

Vitaly Lipatov's avatar
Vitaly Lipatov committed
106 107
Please e-mail if you have any questions:
`lav@etersoft.ru`
Vitaly Lipatov's avatar
Vitaly Lipatov committed
108 109 110 111 112

## Simular projects

* https://github.com/leamas/lpf
* https://ihucos.github.io/zpkg/ - With zpkg you can install programs from other distributions into your system
113 114
* https://github.com/volitank/nala
* http://labix.org/smart