1 2CDDL HEADER START 3 4The contents of this file are subject to the terms of the 5Common Development and Distribution License (the "License"). 6You may not use this file except in compliance with the License. 7 8You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9or http://www.opensolaris.org/os/licensing. 10See the License for the specific language governing permissions 11and limitations under the License. 12 13When distributing Covered Code, include this CDDL HEADER in each 14file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15If applicable, add the following below this CDDL HEADER, with the 16fields enclosed by brackets "[]" replaced with your own identifying 17information: Portions Copyright [yyyy] [name of copyright owner] 18 19CDDL HEADER END 20 21Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22Use is subject to license terms. 23 24The first step in doing any kind of dependency checking - setting up the 25database. 26 27In this example, I use my SampleLinks file to help resolve some defficiencies 28in the pkg database. The "OVERRIDDEN" line refer to information that was 29provided by the SampleLinks file. The "CANNOT FIND" file refers to files 30which are links but cannot be resolved to an executable. The "README" file 31has a more in-depth explanation. 32====================================================================== 33 34 35euphoria>./make_pkg_db -dbdir DBM -ifiles SampleLinks 36...initializing the databases 37Creating directory DBM 38...making the FTYPE MODE and PKGS databases 39...opening SampleLinks 40...opening /var/sadm/install/contents 41...OVERRIDDEN: /usr/bin/appletviewer=../java/bin/appletviewer s none SUNWj2dev.2 42...OVERRIDDEN: /usr/bin/extcheck=../java/bin/extcheck s none SUNWj2dev.2 43...OVERRIDDEN: /usr/bin/jar=../java/bin/jar s none SUNWj2dev.2 44...OVERRIDDEN: /usr/bin/jarsigner=../java/bin/jarsigner s none SUNWj2dev.2 45...OVERRIDDEN: /usr/bin/java=../java/bin/java s none SUNWj2rt.2 46...OVERRIDDEN: /usr/bin/javac=../java/bin/javac s none SUNWj2dev.2 47...OVERRIDDEN: /usr/bin/javadoc=../java/bin/javadoc s none SUNWj2dev.2 48...OVERRIDDEN: /usr/bin/javah=../java/bin/javah s none SUNWj2dev.2 49...OVERRIDDEN: /usr/bin/javald=../java/bin/javald s none SUNWj2dev.2 50...OVERRIDDEN: /usr/bin/javap=../java/bin/javap s none SUNWj2dev.2 51...OVERRIDDEN: /usr/bin/jdb=../java/bin/jdb s none SUNWj2dev.2 52...OVERRIDDEN: /usr/bin/keytool=../java/bin/keytool s none SUNWj2rt.2 53...OVERRIDDEN: /usr/bin/native2ascii=../java/bin/native2ascii s none SUNWj2dev.2 54...OVERRIDDEN: /usr/bin/oldjava=../java/bin/oldjava s none SUNWj2dev.2 55...OVERRIDDEN: /usr/bin/policytool=../java/bin/policytool s none SUNWj2rt.2 56...OVERRIDDEN: /usr/bin/rmic=../java/bin/rmic s none SUNWj2dev.2 57...OVERRIDDEN: /usr/bin/rmid=../java/bin/rmid s none SUNWj2rt.2 58...OVERRIDDEN: /usr/bin/rmiregistry=../java/bin/rmiregistry s none SUNWj2rt.2 59...OVERRIDDEN: /usr/bin/serialver=../java/bin/serialver s none SUNWj2dev.2 60...OVERRIDDEN: /usr/bin/tnameserv=../java/bin/tnameserv s none SUNWj2rt.2 61...OVERRIDDEN: /usr/include/Mrm=../dt/include/Mrm s none SUNWxwhl 62...OVERRIDDEN: /usr/include/X11=../openwin/include/X11 s none SUNWxwhl 63...OVERRIDDEN: /usr/include/Xm=../dt/include/Xm s none SUNWxwhl 64...OVERRIDDEN: /usr/include/kcms=../openwin/include/kcms s none SUNWxwhl 65...OVERRIDDEN: /usr/include/uil=../dt/include/uil s none SUNWxwhl 66...OVERRIDDEN: /usr/include/xil=../openwin/include/xil s none SUNWxwhl 67...making the ABSLINK database 68***CANNOT FIND ABSOLUTE PATH /usr/dt/config/C/bookmarks FOR ENTRY: /usr/dt/config/C/wsmenu/Links/Personal_Bookmarks=../../bookmarks 69***CANNOT FIND ABSOLUTE PATH /usr/dt/config/en_US.UTF-8/bookmarks FOR ENTRY: /usr/dt/config/en_US.UTF-8/wsmenu/Links/Personal_Bookmarks=../../bookmarks 70***CANNOT FIND ABSOLUTE PATH /usr/lib/locale/fr/LC_MESSAGES FOR ENTRY: /usr/lib/locale/fr_CA.ISO8859-1/LC_MESSAGES=../fr/LC_MESSAGES 71...DONE 72 73The default dependency check on /usr/bin/sh. This analysis uses 74"/usr/bin/stings" and "/usr/bin/ldd" to glean information about 75file being analysed. 76 77The default format of a dependency is "filename:pkgname". 78======================================================================= 79 80euphoria>./get_depend_info -dbdir DBM /usr/bin/sh 81 82 83Analyzing /usr/bin/sh: 84/usr/lib/libgen.so.1:SUNWcsl 85/usr/lib/libsecdb.so.1:SUNWcsl 86/usr/lib/libnsl.so.1:SUNWcsl 87/usr/lib/libc.so.1:SUNWcsl 88/usr/lib/libcmd.so.1:SUNWcsl 89/usr/lib/libdl.so.1:SUNWcsl 90/usr/lib/libmp.so.2:SUNWcsl 91/bin:SUNWcsr 92/dev/null:SUNWcsd 93/etc/profile:SUNWcsr 94/usr/5bin:SUNWscpu 95/usr/bin/pfexec:SUNWcsu 96 97A conservative analysis of the executable which only yields guaranteed 98dependencies.. This analysis does not use "/usr/bin/strings" and only 99uses "/usr/bin/ldd". 100=================================================================== 101 102euphoria>get_depend_info -dbdir DBM -cons /usr/bin/sh 103 104 105Analyzing /usr/bin/sh: 106/usr/lib/libgen.so.1:SUNWcsl 107/usr/lib/libsecdb.so.1:SUNWcsl 108/usr/lib/libnsl.so.1:SUNWcsl 109/usr/lib/libc.so.1:SUNWcsl 110/usr/lib/libcmd.so.1:SUNWcsl 111/usr/lib/libdl.so.1:SUNWcsl 112/usr/lib/libmp.so.2:SUNWcsl 113 114A pkg level anaysis on the executable. In this format, only pkg dependencies 115are listed and file dependencies are dropped from the output. 116 117====================================================================== 118euphoria>get_depend_info -dbdir DBM -p /usr/bin/ls 119 120 121Analyzing /usr/bin/ls: 122P SUNWcsl Core Solaris, (Shared Libs) 123The default dependency check on /usr/bin/sh. This analysis uses 124"/usr/bin/stings" and "/usr/bin/ldd" to glean information about 125file being analysed. 126 127The default format of a dependency is "filename:pkgname". 128======================================================================= 129 130euphoria>./get_depend_info -dbdir DBM /usr/bin/sh 131 132 133Analyzing /usr/bin/sh: 134/usr/lib/libgen.so.1:SUNWcsl 135/usr/lib/libsecdb.so.1:SUNWcsl 136/usr/lib/libnsl.so.1:SUNWcsl 137/usr/lib/libc.so.1:SUNWcsl 138/usr/lib/libcmd.so.1:SUNWcsl 139/usr/lib/libdl.so.1:SUNWcsl 140/usr/lib/libmp.so.2:SUNWcsl 141/bin:SUNWcsr 142/dev/null:SUNWcsd 143/etc/profile:SUNWcsr 144/usr/5bin:SUNWscpu 145/usr/bin/pfexec:SUNWcsu 146 147This is a dependency check on a pkg. All the files within the pkg are analysed 148and a report is generated. Note at the end of the listing is a summarized 149listing of pkg dependencies. 150 151============================================================================= 152euphoria>get_depend_info -dbdir DBM -pkg SUNWnisu 153 154 155Analyzing /usr: 156Input file is a directory 157 158 159Analyzing /usr/bin: 160Input file is a directory 161 162 163Analyzing /usr/bin/aliasadm: 164/usr/lib/libsocket.so.1:SUNWcsl 165/usr/lib/libnsl.so.1:SUNWcsl 166/usr/lib/libc.so.1:SUNWcsl 167/usr/lib/libdl.so.1:SUNWcsl 168/usr/lib/libmp.so.2:SUNWcsl 169/usr/bin/vi:SUNWcsu 170 171 172Analyzing /usr/bin/chkey: 173/usr/lib/librpcsvc.so.1:SUNWcsl 174/usr/lib/libnsl.so.1:SUNWcsl 175/usr/lib/libmp.so.2:SUNWcsl 176/usr/lib/libsldap.so.1:SUNWcsl 177/usr/lib/libc.so.1:SUNWcsl 178/usr/lib/libdl.so.1:SUNWcsl 179/usr/lib/libldap.so.4:SUNWcsl 180/usr/lib/libdoor.so.1:SUNWcsl 181/usr/lib/libsocket.so.1:SUNWcsl 182/usr/lib/libresolv.so.2:SUNWcsl 183/etc/nsswitch.conf:SUNWcsr 184/etc/publickey:SUNWnisr 185/usr/ccs/bin/make:SUNWsprot 186 187 188Analyzing /usr/bin/getent: 189/usr/lib/libsocket.so.1:SUNWcsl 190/usr/lib/libnsl.so.1:SUNWcsl 191/usr/lib/libc.so.1:SUNWcsl 192/usr/lib/libdl.so.1:SUNWcsl 193/usr/lib/libmp.so.2:SUNWcsl 194 195 196Analyzing /usr/bin/ldaplist: 197/usr/lib/libldap.so.4:SUNWcsl 198/usr/lib/libsocket.so.1:SUNWcsl 199/usr/lib/libsldap.so.1:SUNWcsl 200/usr/lib/libc.so.1:SUNWcsl 201/usr/lib/libnsl.so.1:SUNWcsl 202/usr/lib/libresolv.so.2:SUNWcsl 203/usr/lib/libdoor.so.1:SUNWcsl 204/usr/lib/libdl.so.1:SUNWcsl 205/usr/lib/libmp.so.2:SUNWcsl 206 207 208Analyzing /usr/bin/newaliases: 209/usr/lib/libresolv.so.2:SUNWcsl 210/usr/lib/libsocket.so.1:SUNWcsl 211/usr/lib/libnsl.so.1:SUNWcsl 212/usr/lib/libldap.so.4:SUNWcsl 213/usr/lib/libsldap.so.1:SUNWcsl 214/usr/lib/libc.so.1:SUNWcsl 215/usr/lib/libdl.so.1:SUNWcsl 216/usr/lib/libmp.so.2:SUNWcsl 217/usr/lib/libdoor.so.1:SUNWcsl 218/dev/ksyms:SUNWcsd 219/dev/null:SUNWcsd 220/etc/hosts:SUNWcsr 221/etc/mail/sendmail.cf:SUNWsndmr 222/etc/mnttab:SUNWcsr 223/usr/tmp:SUNWcsu 224 225 226Analyzing /usr/bin/ypcat: 227/usr/lib/libnsl.so.1:SUNWcsl 228/usr/lib/libdl.so.1:SUNWcsl 229/usr/lib/libc.so.1:SUNWcsl 230/usr/lib/libmp.so.2:SUNWcsl 231/var/yp/nicknames:SUNWnisr 232 233 234Analyzing /usr/bin/ypmatch: 235/usr/lib/libnsl.so.1:SUNWcsl 236/usr/lib/libdl.so.1:SUNWcsl 237/usr/lib/libc.so.1:SUNWcsl 238/usr/lib/libmp.so.2:SUNWcsl 239/var/yp/nicknames:SUNWnisr 240 241 242Analyzing /usr/bin/ypwhich: 243/usr/lib/libnsl.so.1:SUNWcsl 244/usr/lib/libdl.so.1:SUNWcsl 245/usr/lib/libc.so.1:SUNWcsl 246/usr/lib/libmp.so.2:SUNWcsl 247/var/yp/nicknames:SUNWnisr 248 249 250Analyzing /usr/lib: 251Input file is a directory 252 253 254Analyzing /usr/lib/ldap: 255Input file is a directory 256 257 258Analyzing /usr/lib/ldap/ldap_cachemgr: 259/usr/lib/libdoor.so.1:SUNWcsl 260/usr/lib/libnsl.so.1:SUNWcsl 261/usr/lib/libsldap.so.1:SUNWcsl 262/usr/lib/libthread.so.1:SUNWcsl 263/usr/lib/libc.so.1:SUNWcsl 264/usr/lib/libdl.so.1:SUNWcsl 265/usr/lib/libmp.so.2:SUNWcsl 266/usr/lib/libldap.so.4:SUNWcsl 267/usr/lib/libsocket.so.1:SUNWcsl 268/usr/lib/libresolv.so.2:SUNWcsl 269/dev/null:SUNWcsd 270 271 272Analyzing /usr/lib/libnisdb.so: 273/usr/lib/libnsl.so.1:SUNWcsl 274/usr/lib/libdl.so.1:SUNWcsl 275/usr/lib/libc.so.1:SUNWcsl 276/usr/lib/libmp.so.2:SUNWcsl 277 278 279Analyzing /usr/lib/libnisdb.so.2: 280/usr/lib/libnsl.so.1:SUNWcsl 281/usr/lib/libdl.so.1:SUNWcsl 282/usr/lib/libc.so.1:SUNWcsl 283/usr/lib/libmp.so.2:SUNWcsl 284 285 286Analyzing /usr/lib/netsvc: 287Input file is a directory 288 289 290Analyzing /usr/lib/netsvc/nis: 291Input file is a directory 292 293 294Analyzing /usr/lib/netsvc/yp: 295Input file is a directory 296 297 298Analyzing /usr/lib/netsvc/yp/ypbind: 299/usr/lib/libnsl.so.1:SUNWcsl 300/usr/lib/libdl.so.1:SUNWcsl 301/usr/lib/libc.so.1:SUNWcsl 302/usr/lib/libmp.so.2:SUNWcsl 303/dev/null:SUNWcsd 304/etc/hosts:SUNWcsr 305/etc/inet/ipnodes:SUNWcsr 306 307 308Analyzing /usr/lib/netsvc/yp/ypstart: 309/dev/null:SUNWcsd 310/usr/bin/ps:SUNWcsu 311/usr/sbin/fnsypd:SUNWfns 312/usr/sbin/makedbm:SUNWcsu 313/var/yp/Makefile:SUNWypr 314/var/yp/updaters:SUNWypr 315 316 317Analyzing /usr/lib/netsvc/yp/ypstop: 318/usr/bin/ps:SUNWcsu 319 320 321Analyzing /usr/lib/netsvc/yp/ypxfr: 322/usr/lib/libnsl.so.1:SUNWcsl 323/usr/lib/libdl.so.1:SUNWcsl 324/usr/lib/libc.so.1:SUNWcsl 325/usr/lib/libmp.so.2:SUNWcsl 326/dev/null:SUNWcsd 327 328 329Analyzing /usr/sbin: 330Input file is a directory 331 332 333Analyzing /usr/sbin/gettable: 334/usr/lib/libsocket.so.1:SUNWcsl 335/usr/lib/libnsl.so.1:SUNWcsl 336/usr/lib/libdl.so.1:SUNWcsl 337/usr/lib/libc.so.1:SUNWcsl 338/usr/lib/libmp.so.2:SUNWcsl 339 340 341Analyzing /usr/sbin/htable: 342/usr/lib/libsocket.so.1:SUNWcsl 343/usr/lib/libnsl.so.1:SUNWcsl 344/usr/lib/libc.so.1:SUNWcsl 345/usr/lib/libdl.so.1:SUNWcsl 346/usr/lib/libmp.so.2:SUNWcsl 347 348 349Analyzing /usr/sbin/ldap_gen_profile: 350/usr/lib/libldap.so.4:SUNWcsl 351/usr/lib/libsocket.so.1:SUNWcsl 352/usr/lib/libsldap.so.1:SUNWcsl 353/usr/lib/libc.so.1:SUNWcsl 354/usr/lib/libnsl.so.1:SUNWcsl 355/usr/lib/libresolv.so.2:SUNWcsl 356/usr/lib/libdoor.so.1:SUNWcsl 357/usr/lib/libdl.so.1:SUNWcsl 358/usr/lib/libmp.so.2:SUNWcsl 359/etc/nsswitch.conf:SUNWcsr 360/etc/nsswitch.ldap:SUNWcsr 361 362 363Analyzing /usr/sbin/ldapclient: 364/usr/lib/libldap.so.4:SUNWcsl 365/usr/lib/libsocket.so.1:SUNWcsl 366/usr/lib/libsldap.so.1:SUNWcsl 367/usr/lib/libc.so.1:SUNWcsl 368/usr/lib/libnsl.so.1:SUNWcsl 369/usr/lib/libresolv.so.2:SUNWcsl 370/usr/lib/libdoor.so.1:SUNWcsl 371/usr/lib/libdl.so.1:SUNWcsl 372/usr/lib/libmp.so.2:SUNWcsl 373/etc/nsswitch.conf:SUNWcsr 374/etc/nsswitch.ldap:SUNWcsr 375 376 377Analyzing /usr/sbin/newkey: 378/usr/lib/librpcsvc.so.1:SUNWcsl 379/usr/lib/libnsl.so.1:SUNWcsl 380/usr/lib/libmp.so.2:SUNWcsl 381/usr/lib/libsldap.so.1:SUNWcsl 382/usr/lib/libsocket.so.1:SUNWcsl 383/usr/lib/libc.so.1:SUNWcsl 384/usr/lib/libdl.so.1:SUNWcsl 385/usr/lib/libldap.so.4:SUNWcsl 386/usr/lib/libdoor.so.1:SUNWcsl 387/usr/lib/libresolv.so.2:SUNWcsl 388/etc/nsswitch.conf:SUNWcsr 389/etc/publickey:SUNWnisr 390/usr/ccs/bin/make:SUNWsprot 391 392 393Analyzing /usr/sbin/rpc.rexd: 394/usr/lib/libsocket.so.1:SUNWcsl 395/usr/lib/librpcsvc.so.1:SUNWcsl 396/usr/lib/libnsl.so.1:SUNWcsl 397/usr/lib/libbsm.so.1:SUNWcsl 398/usr/lib/libpam.so.1:SUNWcsl 399/usr/lib/libdl.so.1:SUNWcsl 400/usr/lib/libc.so.1:SUNWcsl 401/usr/lib/libmp.so.2:SUNWcsl 402/dev/console:SUNWcsd 403/etc/mnttab:SUNWcsr 404/var/adm/wtmpx:SUNWcsr 405 406 407Analyzing /usr/sbin/ypalias: 408/usr/lib/libnsl.so.1:SUNWcsl 409/usr/lib/libdl.so.1:SUNWcsl 410/usr/lib/libc.so.1:SUNWcsl 411/usr/lib/libmp.so.2:SUNWcsl 412 413 414Analyzing /usr/sbin/ypinit: 415/dev/null:SUNWcsd 416/etc/hosts:SUNWcsr 417/etc/inet/ipnodes:SUNWcsr 418/usr/lib/netsvc/yp/ypxfr:SUNWnisu 419 420 421Analyzing /usr/sbin/yppoll: 422/usr/lib/libnsl.so.1:SUNWcsl 423/usr/lib/libdl.so.1:SUNWcsl 424/usr/lib/libc.so.1:SUNWcsl 425/usr/lib/libmp.so.2:SUNWcsl 426 427 428Analyzing /usr/sbin/ypset: 429/usr/lib/libnsl.so.1:SUNWcsl 430/usr/lib/libdl.so.1:SUNWcsl 431/usr/lib/libc.so.1:SUNWcsl 432/usr/lib/libmp.so.2:SUNWcsl 433 434 435Package dependencies for SUNWnisu: 436P SUNWcsd Core Solaris Devices 437P SUNWcsl Core Solaris, (Shared Libs) 438P SUNWcsr Core Solaris, (Root) 439P SUNWcsu Core Solaris, (Usr) 440P SUNWfns Federated Naming System 441P SUNWlibC Sun Workshop Compilers Bundled libC 442P SUNWlibms Sun WorkShop Bundled shared libm 443P SUNWnisr Network Information System, (Root) 444P SUNWnisu Network Information System, (Usr) 445P SUNWsndmr Sendmail root 446P SUNWsprot Solaris Bundled tools 447P SUNWypr NIS Server for Solaris (root) 448