Paclet Servers

Contributed, operated and maintained by Stanislav Hledík

V. 2021-02-18-a

All paclets provided are only compatible with the Wolfram Language versions from 12.1 onward.

Paclet Servers available

Any of the Paclet Servers listed here provides all paclets listed below (keep in mind the accessibility indicated):

Name    Location    Local    Type    Note
India Sierra    https://is.slu.cz/www/hle0002/paclets    False    Server    Accessible to anyone on the Internet
Whiskey Foxtrot    http://wolf.stud.slu.cz/paclets    False    Server    Accessible to SU inner IPs only, via VPN otherwise

Paclets available

Any of the paclets listed here is available on all the Paclet Servers listed above:

Name    Version    Description    Fingerprint    WL V.    Loading    AutoUpd
Customizzer    0.21133.0.5    Customizing Mathematica on the user-specific level.    9h7i0kplwyjevntxhay4ufcfv    11.3+    Manual    False
Cuticurve    0.20620.1.17    An application to analyze skin viscoelastic curves    5841dtegyys591o5jypnnkcgo    12.1+    Manual    False
Examplet    0.21134.0.1    An instructional and testing single-context paclet    4u9d53p6zgse5nttx70aiax4i    12.1+    Manual    False
ExampletMultiplex    0.21070.2.14    An instructional and testing multi-context paclet    16ldwf6v4lownauqwx07digbu    12.1+    Manual    False
Snapdragon    0.21046.1.88    An eclectic multipurpose cross-disciplinary collection    be9raiunbez1tsmfi11ync4fh    12.1+    Manual    False

Installation and update

For regular users (recommended)

Download InstallPaclet.nb (right-click, choose Save Link As…, accept saving as Text Document) and follow the instruction therein.

For casual users (no registration required)

Download and install/update in a single step (copy & paste the following code to any notebook, replace "Name" with one of the paclet names listed in the Paclets available section, e.g. "Customizzer", and evaluate):

PacletInstall["Name", UpdatePacletSites→True, PacletSite→"https://is.slu.cz/www/hle0002/paclets"]

Paclet will be installed on you system and ready to be loaded using standard Needs or Get (<<) commands.

Note

Select another Paclet Server Location in the Paclet Servers available section if you want to change the pre-filled one specified as the PacletSite option value.

Uninstallation

For regular users (recommended)

Download InstallPaclet.nb (right-click, choose Save Link As…, accept saving as Text Document) and follow the instruction therein.

For casual users (no registration required)

Copy & paste the following code to any notebook, replace "Name" with he paclet name you want to uninstall, and evaluate:

PacletUninstall["Name"]

FAQ

Q: What is a “paclet”?

A: The system of paclets [Gayley, 2019] is a native package management format of Mathematica (not officially documented prior to the release version of 12.1, however, with the advent of Wolfram Language 12.1, the paclet system support moved from undocumented PacletManager` context to well documented, user-accessible System` context.  Additional information can be found on the pages [Horvát, 2016; Horvát, 2017a; Horvát, 2017b; Horvát, 2017c; Wolfram, 2021a; Wolfram, 2021b].  Using paclets is the preferred and recommended method of distributing applications and data for Mathematica.

Q: Where are Paclet Servers located?

A: Paclet Servers are hosted as follows:

India Sierra — on the Silesian University in Opava Information System

Whiskey Foxtrot (if listed) — on the SU in Opava Wolfram License Server

Q: What is the paclet Fingerprint good for?

A: Fingerprint is a kind of checksum for aggregation of all the files distributed in a paclet (with the exception of the PacletInfo.*, _*, and .* files).  By recomputing this checksum for an installed paclet and by comparing the result with the respective Fingerprint listed in the table one can verify that paclet authenticity.  The recomputation can be performed using the following code.  Just copy & paste it into any notebook, replace "Name" and "Fingerprint" in the first line with a real name and fingerprint of the paclet, respectively (both must be strings), and evaluate:

With[{p=PacletFind["Name"],u="Fingerprint",b="Base36String"},
  Transpose@{Information[p,"Version"],
    ToLowerCase[u]===#&/@(
      Hash[#,"MD5",b]&/@
        (StringJoin/@Values[
          KeySelect[FileSystemMap[FileHash[#,"SHA512",b]&,#,Infinity,1],
            !StringMatchQ[#,("PacletInfo."~~__)|("_"~~__)|("."~~__)]&]&/@
          Information[p,"Location"]]
      )
    )
  }
]

A typical result looks like {{0.20601.3.4, True}, {0.20601.2.3, False}, …} in which the leftmost pair confirms the last version passed the authentication, while the previous versions (if any) did not (since their  Fingerprints  differ provided the paclet files changed between versions).  Note: in the PacletInfo.wl file, Fingerprint is listed under the field UUID.

Q: Where do the installed paclets reside?

A: Paclets and paclet configuration data are installed into a special user-specific location managed by the PacletManager – $UserBasePacletsDirectory – which is operating system dependent.  The paclets themselves are installed into $UserBasePacletsDirectory/Repository.  Follow the link to see the details for every supported operating system.

Q: Do I need to uninstall older versions of the paclet?

A: No.  Every paclet has a version number, and although the paclet system is designed to support side-by-side installations of multiple versions of a paclet, by default it uses the one with the highest version number.

Q: Can paclets be installed into a system-wide location?

A: Yes.  There is a location $BasePacletsDirectory that serves as a system-wide analogy of the user-specific location $UserBasePacletsDirectory.  However, PacletInstall only installs paclets into the Repository subdirectory of the $UserBasePacletsDirectory.  So it needs to hand-unpack the paclet directories into $BasePacletsDirectory/Repository (paclets are zip archives), and delete them as well.  The changes will not be detected until the next kernel restart, but you can call PacletDataRebuild[] to force the Paclet Manager to immediately detect any changes you have made manually.  See also [Horvát, 2017c].

Q: Can the installation details be fine tuned?

A: Yes.  Review the options in the PacletInstall command documentation.  In short, they look like this:

PacletInstall["Name",
  AllowVersionUpdate → True (* whether to update an existing paclet *),
  ForceVersionInstall → False (* whether to install the given paclet even if it is older than a currently installed version *),
  KeepExistingVersion → Automatic (* whether to delete the old version when updating *),
  PacletSite → Automatic (* look for the named paclet on a specific paclet site *),
  UpdatePacletSites → Automatic (* whether to update paclet information from all known sites before attempting the install *)
]

See also the “For casual users” subsection of the Installation and update section where the last two ones are used.

Q: Can I uninstall a paclet by deleting it from the repository?

A: This is not a recommended practice, you should preferable uninstall using the PacletUninstall command. Once you’ve done that however, update the internal cache with PacletDataRebuild[].  This is the only way of uninstalling paclets from the system-wide $BasePacletsDirectory/Repository as described above (PacletUninstall does not support uninstalling from the system-wide repository).

Q: Can I uninstall a specific version of an installed paclet?

A: Yes.  Review the documentation of PacletUninstall.  In short, the syntax looks like this: PacletUninstall["Name" → "version"].

Q: Can I uninstall paclets I don’t know what they are for?

A: In no bloody way!

References

[Gayley, 2019] Todd Gayley, 2019. Paclets and Paclet Development [online].  Wolfram Cloud.  Available at: https://www.wolframcloud.com/obj/tgayley/Published/PacletDevelopment.nb [Accessed 13 Feb 2021].

[Horvát, 2016] Szabolcs Horvát, 2016. PacletInfo.m documentation project [online].  Mathematica Stack Exchange.  Available at: https://mathematica.stackexchange.com/q/132064 [Accessed 13 Feb 2021].

[Horvát, 2017a] Szabolcs Horvát, 2017. How to distribute Mathematica packages as paclets? [online].  Mathematica Stack Exchange.  Available at: https://mathematica.stackexchange.com/q/131101 [Accessed 13 Feb 2021].

[Horvát, 2017b] Szabolcs Horvát, 2017. How can I install packages distributed as .paclet files? [online].  Mathematica Stack Exchange.  Available at: https://mathematica.stackexchange.com/q/141887 [Accessed 13 Feb 2021].

[Horvát, 2017c] Szabolcs Horvát, 2017. Install paclets into $BaseDirectory on multi-user system [online].  Mathematica Stack Exchange.  Available at: https://mathematica.stackexchange.com/q/155122 [Accessed 13 Feb 2021].

[Wolfram, 2021a] Wolfram Research, 2020.  Mathematica Support [online].  Available at: https://support.wolfram.com/topic/mathematica [Accessed 13 Feb 2021].

[Wolfram, 2021b] Wolfram Research, 2020.  Working with Paclets (Guide) [online].  Available at: https://reference.wolfram.com/language/guide/Paclets.html [Accessed 13 Feb 2021].

Created with the Wolfram Language