It is Python wrapper tool for emerge (Gentoo package manager - Portage). It can mount RAM disk of defined size and compile packages inside it
Project description
pyerge
It is small python wrapper tool for emerge (Gentoo package manager - Portage). It can mount RAM disk of defined size and compile packages inside it. Pyerge provide various tools to check and show emerge/portage status for conky.
Sponsored by Jetbrains Open Source Support Program
Table of Contents
Name
It should be called PYMERGE for PYthon and eMERGE, but when I create repository I missspelled the name, and I keep it like that.
Requirements
- Python-3.6+
- app-portage/eix
Installation
Copy ebuild from GitHub Releases into your local repository (i.e. /usr/local/portage/dev-python/portage) and run as root:
cd /usr/local/portage/app-portage/portage
ebuild pyerge-0.7.2.ebuild manifest
eix-update
echo "app-portage/pyerge ~amd64" >> /etc/portage/package.accept_keywords
emerge app-portage/portage
Ebuild is good quality as RepoMan sez: "If everyone were like you, I'd be out of business!"
Main usage
Pyerge API/CLI parameter are not stable yes and are subject to change.
Main pyerge script is called pye
and has two main actions: check
and emerge
pye check
sudo pye check
It basicly run:
- sync portage
eix-sync
sudo emerge -pvNDu --nospinner --with-bdeps=y --color n @world
(and save output to log_file_1)- Estypete time for runing ememrge @world
genlop -pn
(and save to log_file_2)
Some useful switches:
- -l, --local - run everthing without
eix-sync
- -q, --quiet - no output from pyerge itself only form other tools like
eix
, oremerge
- -v, --verbose - be more verbose
pye emerge
sudo pye -w emerge
It basicly run:
- check if emerge isn't runnig
- set envirinment variable PORTAGE_TMPDIR to /var/tmp/portage
- mount 4G RAM disk to /var/tmp/portage
- run
emerge -NDu --nospinner --with-bdeps=y --keep-going=y @world
- unmount RAM disk
Some useful switches:
- -d, --clean-print - after running
emerge -pvNDu @world
it will show output from deep clean -emegre -pc
- -c, --clean-run - after running
emerge -pvNDu @world
it will run deep clean -emerge -c
(imply -d)
After emerge
action you can pass any ememrge parameter, it will be passed directly into emerge. So, you can build:
sudo pye -s 1G emerge -a app-admin/conky
It will mount only 1G RAM disk and ask while comipling app-admin/conky package.
- -s, --size - size of RAM disk with postfix i.e. 1024K, 512M, 2G
Tools for Conky
Those tools are crated especialy for Conky monitoring. i.e. part of my .conkyrc:
color0 5b6dad
color1 7f8ed3
TEXT
${color0}Sensors:
${color0}CPU1: ${color1}${hwmon 0 temp 2}°C ${color0}CPU2: ${color1}${hwmon 0 temp 3}°C
${color0}md126 (root): ${color1}${execi 60 e_raid -n md126} ${color0}md127 (swap): ${color1}${execi 60 e_raid -n md127}
${color1}$hr
${color0}File Systems:
${color0}root ${color1}${fs_used /}/${fs_size /} ${color1}${fs_bar /}
${color0}boot ${color1}${fs_used /boot}/${fs_size /boot} ${color1}${fs_bar /boot}
${color0}portage ${color1}${fs_used /var/tmp/portage}/${fs_size /var/tmp/portage} ${color1}${fs_bar 6 /var/tmp/portage}
${color1}$hr
${color0}Portage:
${color0}Last Sync: ${color1}${execi 120 e_sync}
${color0}Progress: ${color1}${execibar 30 e_prog}
${color0}Package: ${color1}${execi 30 e_curr}
${color0}ETA: ${color1}${execi 30 e_eta}
${color0}Status: ${color1}${execi 30 e_sta}
${color0}Update: ${color1}${execi 30 e_upd}
${color0}Download: ${color1}${execi 30 e_dl}
${color0}EUT: ${color1}${execi 30 e_eut}
${color0}Live: ${color1}${execi 5400 e_live all}
${color1}$hr
${color0}Gentoo Linux Security Advisories:
${color1}${execi 5400 glsa list -e 25}
${color0}Affected GLSA:
${color1}${execi 5400 glsa test -e 40}
e_sync
e_sync
Print date of last emerge syc eix-sync
e_dl
e_dl
Run after pye check
print size of downloads of @world
i.e. output - 3,239,589 KiB
e_curr
e_curr
Run during sudo pye emereg
or sudo emerge
- print current building (lastly builded) package
e_eut
e_eut
Run after pye check
- print estimated update time from genlop -pn
i.e. output - 2 days 10h 36min
e_eta
e_eta
Run during sudo pye emereg
or sudo emerge
- print estimetet left time to end of compilation, based on genlop
e_log
e_log
Run after pye check
- print content of next @world update
e_sta
e_sta
Status of emerge/portage. Possible values: Compiling, Cleaning, Autoclean, Completed, Finished, Synced, Syncing, Unmerging, Merging, Unmerge
e_prog
e_prog
Run during sudo pye emereg
or sudo emerge
- print current progress of emerge as float
i.e. output - if emerge is buildeing (5 of 6) package it will return 83.3333
You can use it in conky as: ${execibar 30 e_prog}
e_upd
e_upd
Run after pye check
- print types of next @world update. Possible values: U, N, NS, R, Un, D, B
i.e. output - 19 U, 2 R, 1 Un, 2 D - it means 19 upgrades, 2 reinstals, 1 uninstall, 2 downgrades
e_raid
e_raid <raid dev>
Print RAID status form /proc/mdstat i.e. output for e_raid md126L: [UUU]
e_live
e_live <action>
Print names and number of live ebuild to rebuild i.e. output for e_live all: cvechecker,openmw (2 of 3)
glsa
glsa -e 5 list
List last 5 of GLSA enrties output:
202107-55: SDL 2: Multiple vulnerabilities
202107-54: libyang: Multiple vulnerabilities
202107-53: Leptonica: Multiple vulnerabilities
202107-52: Apache Velocity: Multiple vulnerabilities
202107-51: IcedTeaWeb: Multiple vulnerabilities
glsa -e 40 test
Check system against last 40 of GLSA. output:
System is not affected by any of listed GLSAs
or list of IDs:
202107-53,202107-52
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pyerge-0.7.2.tar.gz
.
File metadata
- Download URL: pyerge-0.7.2.tar.gz
- Upload date:
- Size: 25.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 816c09e489f9e058da78051ad4fd11cee45599db9e83502c79793108b0572b0b |
|
MD5 | 0b7333d9106d78cf7f5912a3f225272c |
|
BLAKE2b-256 | 100d6f0257a2735e5240022a32a6852b6b3f59a9983481fc5b5b8629b56ec9d5 |
File details
Details for the file pyerge-0.7.2-py3-none-any.whl
.
File metadata
- Download URL: pyerge-0.7.2-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b3686dc589429f22953e3bdac2428b5a0a9466c3ee851474b917ea159de0986 |
|
MD5 | 497ef73a17d78c58bae33730409c66d3 |
|
BLAKE2b-256 | 8fb8e6e482fa7f3a34f4807571fee2e553032a4a266352b58a13236158df1605 |