Skip to content

bcouturi/lbpkr

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lbpkr

Build Status

lbpkr is a Go-based re-implementation of RpmInstall.

Installation

$ go get github.com/lhcb-org/lbpkr

or, if you prefer the binary:

$ curl -O -L http://cern.ch/lhcbproject/dist/rpm/lbpkr && chmod +x ./lbpkr
$ ./lbpkr help

Usage

list available packages

$ lbpkr list LHCB
LHCBEXTERNALS_v68r0_x86_64_slc6_gcc48_opt-1.0.0-1
LHCB_v37r1-1.0.0-1
LHCB_v37r1_x86_64_slc6_gcc48_opt-1.0.0-1
LHCB_v37r3-1.0.0-1
LHCB_v37r3_x86_64_slc6_gcc48_dbg-1.0.0-1
LHCB_v37r3_x86_64_slc6_gcc48_opt-1.0.0-1
lbpkr INFO    Total matching: 6

install a package (and its dependencies)

$ lbpkr install -type=atlas LCGCMT_LCGCMT_67b_i686_slc6_gcc47_opt-1-1
lbpkr INFO    installing RPM LCGCMT_LCGCMT_67b_i686_slc6_gcc47_opt 1 1
lbpkr INFO    installing LCGCMT_LCGCMT_67b_i686_slc6_gcc47_opt and dependencies
lbpkr INFO    found 31 RPMs to install:
lbpkr INFO    	[001/031] AtlasSetup-00.03.74-1
lbpkr INFO    	[002/031] CLHEP_1_9_4_7_i686_slc6_gcc47_opt-1-1
lbpkr INFO    	[003/031] CASTOR_2_1_13_6_i686_slc6_gcc47_opt-1-1
lbpkr INFO    	[004/031] ROOT_5_34_13_i686_slc6_gcc47_opt-1-1
lbpkr INFO    	[005/031] Expat_2_0_1_i686_slc6_gcc47_opt-1-1
lbpkr INFO    	[006/031] GCCXML_0_9_0_20120309p2_i686_slc6_gcc47_opt-1-1
lbpkr INFO    	[007/031] Boost_1_53_0_python2_7_i686_slc6_gcc47_opt-1-1
[...]
lbpkr INFO    downloading http://atlas-computing.web.cern.ch/atlas-computing/links/reposDirectory/lcg/slc6/yum//noarch/AIDA_3_2_1_noarch-1-1.noarch.rpm to /opt/cern-sw/tmp/AIDA_3_2_1_noarch-1-1.rpm

list installed packages

$ lbpkr installed
AIDA-3fe9f_3.2.1_x86_64_slc6_gcc48_opt-1.0.0-4
Boost-f9e91_1.55.0_python2.7_x86_64_slc6_gcc48_opt-1.0.0-4
CASTOR-9ccc5_2.1.13_6_x86_64_slc6_gcc48_opt-1.0.0-4
[...]
vdt-d9030_0.3.6_x86_64_slc6_gcc48_opt-1.0.0-4
xqilla-cefdd_2.2.4p1_x86_64_slc6_gcc48_opt-1.0.0-4
xrootd-3a806_3.2.7_x86_64_slc6_gcc48_opt-1.0.0-4

find which package provides a file

$ lbpkr provides gaudirun.py
GAUDI_v25r1-1.0.0-1 (/opt/cern-sw/lhcb/GAUDI/GAUDI_v25r1/Gaudi/scripts/.svn/prop-base/gaudirun.py.svn-base)
GAUDI_v25r1_x86_64_slc6_gcc48_opt-1.0.0-1 (/opt/cern-sw/lhcb/GAUDI/GAUDI_v25r1/InstallArea/x86_64-slc6-gcc48-opt/scripts/gaudirun.py)

list the dependencies of a given package

$ lbpkr deps ROOT-6ef81_5.34.18_x86_64_slc6_gcc48_opt
CASTOR-9ccc5_2.1.13_6_x86_64_slc6_gcc48_opt-1.0.0-4
GSL-a0511_1.10_x86_64_slc6_gcc48_opt-1.0.0-4
Python-31787_2.7.6_x86_64_slc6_gcc48_opt-1.0.0-5
Qt-f642c_4.8.4_x86_64_slc6_gcc48_opt-1.0.0-4
dcap-cdd28_2.47.7_1_x86_64_slc6_gcc48_opt-1.0.0-4
fftw-0c601_3.1.2_x86_64_slc6_gcc48_opt-1.0.0-4
gcc_4.8.1_x86_64_slc6-1.0.0-1
gfal-6fc75_1.13.0_0_x86_64_slc6_gcc48_opt-1.0.0-4
graphviz-a8340_2.28.0_x86_64_slc6_gcc48_opt-1.0.0-4
mysql-c4d2c_5.5.27_x86_64_slc6_gcc48_opt-1.0.0-4
oracle-e33b7_11.2.0.3.0_x86_64_slc6_gcc48_opt-1.0.0-4
sqlite-4b60e_3070900_x86_64_slc6_gcc48_opt-1.0.0-4
srm_ifce-be254_1.13.0_0_x86_64_slc6_gcc48_opt-1.0.0-4
xrootd-3a806_3.2.7_x86_64_slc6_gcc48_opt-1.0.0-4

dump the depencency graph of installed RPMs

$ lbpkr dep-grap -o graph.dot GAUDI
GAUDI_v25r2-1.0.0-1
GAUDI_v25r2_x86_64_slc6_gcc48_opt-1.0.0-1
$ cat graph.dot
digraph rpms {
        "GAUDI_v25r2_x86_64_slc6_gcc48_opt-1.0.0-1"->"LHCBEXTERNALS_v68r0_x86_64_slc6_gcc48_opt-1.0.0-1";
        "GAUDI_v25r2_x86_64_slc6_gcc48_opt-1.0.0-1"->"GAUDI_v25r2-1.0.0-1";
        "GAUDI_v25r2-1.0.0-1" [ epoch="0", name="GAUDI_v25r2", release="1", version="1.0.0" ];
        "GAUDI_v25r2_x86_64_slc6_gcc48_opt-1.0.0-1" [ epoch="0", name="GAUDI_v25r2_x86_64_slc6_gcc48_opt", release="1", version="1.0.0" ];
        "LHCBEXTERNALS_v68r0_x86_64_slc6_gcc48_opt-1.0.0-1" [ epoch="0", name="LHCBEXTERNALS_v68r0_x86_64_slc6_gcc48_opt", release="1", version="1.0.0" ];

}

## dump the full graph rooted in GAUDI_v25r2_x86_64_slc6_gcc48_opt
$ lbpkr dep-graph -o graph.dot -rec-lvl=-1 GAUDI_v25r2_x86_64_slc6_gcc48_opt

help

$ lbpkr help
lbpkr - installs software in MYSITEROOT directory.

Commands:

    check       check for RPM updates from the yum repository
    dep-graph   dump the DOT graph of installed RPM packages [<name-pattern> [<version-pattern> [<release-pattern>]]]
    deps        list all deps RPM packages satisfying <name-pattern> [<version-pattern> [<release-pattern>]]
    install     install a RPM from the yum repository
    installed   list all installed RPM packages satisfying <name-pattern> [<version-pattern> [<release-pattern>]]
    list        list all RPM packages satisfying <name-pattern> [<version-pattern> [<release-pattern>]]
    provides    list all installed RPM packages providing the given file
    remove      remove a RPM from the yum repository
    rpm         rpm passes through command-args to the RPM binary
    self        admin/internal operations for lbpkr
    update      update RPMs from the yum repository
    version     print out script version

Use "lbpkr help <command>" for more information about a command.

References

About

Go-based installer for RPMs and Dockers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%