It’s well known that IPS has replaced SYSV in Solaris 11. It is still
possible to install SYSV style packages. But how do these 2 package
managers work together. If I use the netcat package as an example, I can
see it as a IPS package and a SYSV package:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| df3804@empire:~$ pkg info netcat
Name: network/netcat
Summary: Netcat command
Description: The nc(1) or netcat(1) utility can open TCP connections, send
UDP packets, listen on arbitrary TCP and UDP ports and perform
port scanning.
Category: Applications/Internet
State: Installed
Publisher: solaris
Version: 0.5.11 Build Release: 5.11
Branch: 0.175.1.0.0.24.2 Packaging Date: Wed Sep 19 18:44:27 2012
Size: 144.83 kB
FMRI: pkg://solaris/network/netcat@0.5.11,5.11-0.175.1.0.0.24.2:20120919T184427Z
df3804@empire:~$ pkginfo -l SUNWnetcat
PKGINST: SUNWnetcat
NAME: Netcat Command
CATEGORY: system
ARCH: sparc
VERSION: 11.11,REV=2009.11.11
BASEDIR: /
VENDOR: Oracle Corporation
DESC: Netcat Command INSTDATE: Nov 05 2012 11:15
HOTLINE: Please contact your local service provider
STATUS: completely installed
|
If I remove the IPS package, the SYSV package automatically disappears.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| df3804@empire:~$ sudo pkg uninstall netcat
Packages to remove: 1
Create boot environment: No
Create backup boot environment: No
PHASE ITEMS
Removing old actions 22/22
Updating package state database Done
Updating package cache 1/1
Updating image state Done
Creating fast lookup database Done
df3804@empire:~$ pkginfo -l SUNWnetcat
ERROR: information for "SUNWnetcat" was not found
df3804@empire:~$ pkg info -r netcat
Name: network/netcat
Summary: Netcat command
Description: The nc(1) or netcat(1) utility can open TCP connections, send
UDP packets, listen on arbitrary TCP and UDP ports and perform
port scanning.
Category: Applications/Internet
State: Not installed
Publisher: solaris
Version: 0.5.11
Build Release: 5.11
Branch: 0.175.1.0.0.24.2
Packaging Date: Wed Sep 19 18:44:27 2012
Size: 144.83 kB
FMRI: pkg://solaris/network/netcat@0.5.11,5.11-0.175.1.0.0.24.2:20120919T184427Z`
|
If I re-install netcat and then try and remove the SYSV package, I get
an error:
1
2
3
4
5
6
7
8
9
10
| df3804@empire:~$ sudo pkgrm SUNWnetcat
The following package is currently installed:
SUNWnetcat Netcat Command
(sparc) 11.11,REV=2009.11.11
Do you want to remove this package? [y,n,?,q] y
pkgrm: ERROR: unable to change current working directory to </var>
Removal of <sunwnetcat> failed (internal error).
No changes were made to the system.
|
This shows that the SYSV package is just virtual. How about real SYSV
package? Taking LGTOclnt
as an example, you can see the SYSV style
package, but no IPS style package:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| df3804@empire:~$ pkginfo -l LGTOclnt
PKGINST: LGTOclnt
NAME: NetWorker Client
CATEGORY: application
ARCH: sparc
VERSION: 7.6.4.1.Build.1049
BASEDIR: /usr
VENDOR: EMC Corporation.
DESC: NetWorker Client
PSTAMP: athletic20120719204528
INSTDATE: Feb 11 2013 10:16
HOTLINE: Please contact your local service provider
STATUS: completely installed
FILES: 97 installed pathnames
4 shared pathnames
16 directories
68 executables
426365 blocks used (approx)
df3804@empire:~$ pkg info | grep clnt
df3804@empire:~$ pkg info -r clnt
pkg: info: no packages matching the following patterns you specified were found in the catalog. Try relaxing the patterns, refreshing, and/or examining the catalogs:`
|
Even worse is that not all IPS packages have a virtual SYSV package
associated with them. If you take a custom package for example:
1
2
3
4
5
6
7
8
9
10
11
12
13
| df3804@empire:~$ pkg info bcfg2
Name: bcfg2
Summary: Configuration management client
State: Installed
Publisher: uob
Version: 1.2.4
Build Release: 5.11
Branch: None
Packaging Date: Thu May 30 17:21:19 2013
Size: 398.49 kB
FMRI: pkg://uob/bcfg2@1.2.4,5.11:20130530T172119Z
df3804@empire:~$ pkginfo | grep bcfg
df3804@empire:~$
|
The real question is how do I tell the different between real SYSV
packages and “virtual ones”? Why do these virtual packages even exist?
On a clean Solaris 11 install, there are 407 SYSV style packages
installed. Determining which of these are real and which are virtual,
could be hard.