{"article":{"slug":"what-the-heck-is-pkg","title":"What the heck is /pkg?","subtitle":null,"summary":"Gavin Anderegg digs into a mysterious /pkg/env/global/bin entry that macOS 27.0 adds to PATH via /etc/paths.d, explaining path_helper background and what is and isn't known about the new root-level /pkg directory.","content_type":"blog_post","language":"en","canonical_url":"https://anderegg.ca/2026/10/18/what-the-heck-is-pkg","author":{"name":"Gavin Anderegg","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"anderegg.ca","url":"https://anderegg.ca/","listing_slug":null,"listing":null},"topics":[{"name":"macOS","slug":"macos","url":"https://listedarticles.com/topics/macos"},{"name":"Developer Tools","slug":"developer-tools","url":"https://listedarticles.com/topics/developer-tools"},{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":452,"reading_minutes":2,"published_at":"2026-10-18T16:52:45.000Z","added_at":"2026-10-19T05:10:36.537Z","updated_at":"2026-10-19T05:10:36.537Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/what-the-heck-is-pkg","markdown_url":"https://listedarticles.com/articles/what-the-heck-is-pkg.md","example":false,"citation":"Gavin Anderegg, anderegg.ca. \"What the heck is /pkg?.\" 18 Oct 2026. https://anderegg.ca/2026/10/18/what-the-heck-is-pkg (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://anderegg.ca/2026/10/18/what-the-heck-is-pkg"},"body_markdown":"## What the heck is /pkg?\n\n### October 18, 2026\n\nRecently, while troubleshooting a [PATH](https://en.wikipedia.org/wiki/PATH_%28variable%29) issue, I noticed an entry for `/pkg/env/global/bin`. At first, I worried that something had gone horribly wrong. Turns out, this is part of macOS 27.0… though no one is sure what it’s for yet.\n\nFirst, some background. Since Mac OS X 10.5 in 2007, the OS has included a [`path_helper`](https://hea-www.harvard.edu/~fine/OSX/path_helper.html) utility. This reads entries from `/etc/paths` as well as from any files in the `/etc/paths.d` directory. While one could potentially take advantage of this system, I (and I’d guess most others) handle adding new PATH entries using the [`.zshrc` file](https://zsh.sourceforge.io/Doc/Release/Files.html#Startup_002fShutdown-Files), or similar. The `path_helper` utility seems to be primarily used by Apple.\n\nIn macOS 10.15, an entry was added to `/etc/paths.d` to support the new location of the [`rvictl` utility](https://developer.apple.com/forums/thread/125402?answerId=392314022#392314022). In macOS 13.3, [Apple added some new entries](https://eclecticlight.co/2023/04/05/how-cryptexes-are-changing-macos-ventura/#comment-85119) to support [Cryptexes](https://eclecticlight.co/2023/04/05/how-cryptexes-are-changing-macos-ventura/). Now in macOS 27.0, there’s a new `10-pmk-global` file [1](#fn:1) which adds `/pkg/env/global/bin` to the PATH list.\n\nI only started looking into this when I noticed an unfamiliar entry starting with `/pkg` in my PATH. I assumed something had gone awry. Then I saw that there was, indeed, a `/pkg` directory in the root of my filesystem. After freaking out slightly, I fell down this rabbit hole.\n\nIn a post about how [macOS’s boot volume structure has been updated](https://eclecticlight.co/2026/09/19/macos-tahoe-26-4-changed-boot-volume-structure/), Howard Oakley explains that the `pkg` directory was added to the Data volume in macOS 26.4, but not added to the root of the Signed System Volume until 27.0. He also notes that [this is sort of a big deal](https://eclecticlight.co/2026/09/19/macos-tahoe-26-4-changed-boot-volume-structure/#comment-116877).\n\nThe weird thing is, as far as I can tell, no one seems to know what this new directory is for! It’s odd that Apple would update their filesystem structure, add it to everyone’s PATH, and there not be some explicable reason.\n\nThe `/pkg` directory contains four subdirectories: `env`, `etc`, `inv`, and `var`. Based on its name and those subdirectories, it’s possible this could be used for an upcoming first-party package management system — but this is a wild guess. Apple recently [took over the Swift Package Index](https://www.theregister.com/software/2026/06/25/apple-takes-over-swift-package-index-vows-to-remove-github-dependency/5262048), but this seems unrelated. I don’t know why you’d need a root-level directory to help with project-level dependencies. It’s also not clear what the “pmk” in `/etc/paths.d/10-pmk-global` refers to.\n\nHere’s hoping we get more details on this at some point. In the meantime, maybe these details will help prevent someone else from freaking out when they see this entry in their PATH.\n\n---\n\n1. Here the “10” part of the filename is to help with priority. Files starting with lower numbers are added to the PATH first, and therefore have priority. [↩](#fnref:1)\n","body_html":"<h2 id=\"what-the-heck-is-pkg\">What the heck is /pkg?</h2>\n<h3 id=\"october-18-2026\">October 18, 2026</h3>\n<p>Recently, while troubleshooting a <a href=\"https://en.wikipedia.org/wiki/PATH_%28variable%29\" rel=\"nofollow ugc noopener\">PATH</a> issue, I noticed an entry for <code>/pkg/env/global/bin</code>. At first, I worried that something had gone horribly wrong. Turns out, this is part of macOS 27.0… though no one is sure what it’s for yet.</p>\n<p>First, some background. Since Mac OS X 10.5 in 2007, the OS has included a <a href=\"https://hea-www.harvard.edu/~fine/OSX/path_helper.html\" rel=\"nofollow ugc noopener\"><code>path_helper</code></a> utility. This reads entries from <code>/etc/paths</code> as well as from any files in the <code>/etc/paths.d</code> directory. While one could potentially take advantage of this system, I (and I’d guess most others) handle adding new PATH entries using the <a href=\"https://zsh.sourceforge.io/Doc/Release/Files.html#Startup_002fShutdown-Files\" rel=\"nofollow ugc noopener\"><code>.zshrc</code> file</a>, or similar. The <code>path_helper</code> utility seems to be primarily used by Apple.</p>\n<p>In macOS 10.15, an entry was added to <code>/etc/paths.d</code> to support the new location of the <a href=\"https://developer.apple.com/forums/thread/125402?answerId=392314022#392314022\" rel=\"nofollow ugc noopener\"><code>rvictl</code> utility</a>. In macOS 13.3, <a href=\"https://eclecticlight.co/2023/04/05/how-cryptexes-are-changing-macos-ventura/#comment-85119\" rel=\"nofollow ugc noopener\">Apple added some new entries</a> to support <a href=\"https://eclecticlight.co/2023/04/05/how-cryptexes-are-changing-macos-ventura/\" rel=\"nofollow ugc noopener\">Cryptexes</a>. Now in macOS 27.0, there’s a new <code>10-pmk-global</code> file <a href=\"#fn:1\">1</a> which adds <code>/pkg/env/global/bin</code> to the PATH list.</p>\n<p>I only started looking into this when I noticed an unfamiliar entry starting with <code>/pkg</code> in my PATH. I assumed something had gone awry. Then I saw that there was, indeed, a <code>/pkg</code> directory in the root of my filesystem. After freaking out slightly, I fell down this rabbit hole.</p>\n<p>In a post about how <a href=\"https://eclecticlight.co/2026/09/19/macos-tahoe-26-4-changed-boot-volume-structure/\" rel=\"nofollow ugc noopener\">macOS’s boot volume structure has been updated</a>, Howard Oakley explains that the <code>pkg</code> directory was added to the Data volume in macOS 26.4, but not added to the root of the Signed System Volume until 27.0. He also notes that <a href=\"https://eclecticlight.co/2026/09/19/macos-tahoe-26-4-changed-boot-volume-structure/#comment-116877\" rel=\"nofollow ugc noopener\">this is sort of a big deal</a>.</p>\n<p>The weird thing is, as far as I can tell, no one seems to know what this new directory is for! It’s odd that Apple would update their filesystem structure, add it to everyone’s PATH, and there not be some explicable reason.</p>\n<p>The <code>/pkg</code> directory contains four subdirectories: <code>env</code>, <code>etc</code>, <code>inv</code>, and <code>var</code>. Based on its name and those subdirectories, it’s possible this could be used for an upcoming first-party package management system — but this is a wild guess. Apple recently <a href=\"https://www.theregister.com/software/2026/06/25/apple-takes-over-swift-package-index-vows-to-remove-github-dependency/5262048\" rel=\"nofollow ugc noopener\">took over the Swift Package Index</a>, but this seems unrelated. I don’t know why you’d need a root-level directory to help with project-level dependencies. It’s also not clear what the “pmk” in <code>/etc/paths.d/10-pmk-global</code> refers to.</p>\n<p>Here’s hoping we get more details on this at some point. In the meantime, maybe these details will help prevent someone else from freaking out when they see this entry in their PATH.</p>\n<hr />\n<ol><li>Here the “10” part of the filename is to help with priority. Files starting with lower numbers are added to the PATH first, and therefore have priority. <a href=\"#fnref:1\">↩</a></li></ol>","headings":[{"level":2,"text":"What the heck is /pkg?","id":"what-the-heck-is-pkg"},{"level":3,"text":"October 18, 2026","id":"october-18-2026"}]}}