Child pages
  • Republishing a package after modifying its manifest

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

To keep this concrete, we will use the example of removing some symbolic links from the developer/gcc-3 package. That places symlinks to itself in /usr/bin, something we do not want, since a newer version of gcc is preferred in OI, and we want symlinks to that version to reside in /usr/bin.

First, we use [[pkgrecv}} to retrieve the package so that we can modify it.{{

No Format

herzen@oi:~/tmp$ pkg list -afv gcc-3


FMRI                                                                         IFO


herzen@oi:~/tmp$ mkdir IPS_raw
herzen@oi:~/tmp$ pfexec pkgrecv -s -d IPS_raw --raw pkg://,5.11-0.151.1:20110912T022602Z
herzen@oi:~/tmp:$ cd IPS_raw

We now have a directory developer%2Fgcc-3 with a directory 3.4.3%2C5.11-0.151.1%3A20110912T022602Z in it, which is the raw IPS package. In the latter directory, we edit the manifest file to remove the symlinks we do not want from it. So, for example, we delete the line


Finally, we use pkgsend to republish the modified package to the local file-based /export/repo.

herzen@oi:~/tmp$ pfexec pkgsend -s /export/repo publish -d 3.4.3%2C5.11-0.151.1%3A20110912T022602Z --fmri-in-manifest 3.4.3%2C5.11-0.151.1%3A20110912T022602Z/manifest