fix: change pebble dir in 24.04 from /.rock/bin to /usr/bin
Metadata
Current evaluation
Merged a fix updating the pebble binary path from /.rock/bin to /usr/bin for Ubuntu 24.04+ rocks. Approved by two reviewers, passed CI, and builds on PR #528 to ensure stable runtime paths.
Suggested action: —
No scores available.
Issue body
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
-----
## Description
After discussion with the Starcraft team, it has been agreed on to move the `pebble` binary to `/usr/bin` instead of `/.rock/bin` for 24.04, since we're quite sure that the `/usr/bin` dir won't change for 24.04.
This PR builds over the previous PR https://github.com/canonical/rockcraft/pull/528 but replaces the pebble path for 24.04 and onwards to `/usr/bin`, and change .
## Related PRs
PR https://github.com/canonical/rockcraft/pull/528
## Testing
Aside from spread tests, this is a manual test using the Hello World rock with build-base of 24.04 to confirm the path of pebble binary.
Rock:
```yaml
name: chiselled-hello
summary: Hello world from Chisel slices
description: A "bare" rock containing the "hello" package binaries from Chisel slices.
license: Apache-2.0
version: "latest"
base: bare
build_base: ubuntu@24.04
platforms:
amd64:
services:
hello_service:
startup: disabled
command: hello
override: replace
parts:
hello:
plugin: nil
stage-packages:
- hello_bins
```
### Results

Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged a fix updating the pebble binary path from /.rock/bin to /usr/bin for Ubuntu 24.04+ rocks. Approved by two reviewers, passed CI, and builds on PR #528 to ensure stable runtime paths. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged a fix updating the pebble binary path for Ubuntu 24.04 from /.rock/bin to /usr/bin. The change builds on PR #528 and was verified via manual and spread tests. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Updates the pebble binary directory for Ubuntu 24.04 from /.rock/bin to /usr/bin. The change supersedes previous path handling and was verified via manual testing. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #528 fix(pebble): place pebble in a separate location | rockcraft | merged | Merged. Relocates the pebble binary to .rock/bin/ to resolve conflicts with Ubuntu 24.04's bin symlink. Approved by reviewers and passed CI. Reviewers confirmed adding .rocks/bin to $PATH for docker exec compatibility, tracked as ROCKS-1088. | |
| #525 Update pebble part for 24.04 rocks | rockcraft | closed | Resolved usrmerge symlink conflicts by updating the pebble binary location for 24.04 rocks. Closed after being fixed by pull request #528. | |
| #1211 Reconsider the Pebble binary location | rockcraft | open | Issue about Pebble binary location conflict with Ubuntu packages. Resolved by merged PRs #528 and #552 which relocated pebble to .rock/bin/ then back to /usr/bin for Ubuntu 24.04+ rocks. | |
| #725 fix: set PATH on bare-based rocks | rockcraft | merged | Merged fix that sets the default Ubuntu PATH on bare-based rocks images to mitigate security risks if the Pebble entrypoint is bypassed. Approved by three reviewers, passed CI, and resolves issue #711. | |
| #473 fix(pebble): /var/lib/pebble/default has mode 0777 | rockcraft | merged | Merged fix ensuring /var/lib/pebble/default always uses 0777 permissions, preventing non-root Pebble failures. Approved by three reviewers, passed CI, and includes a new spread test to verify the fix. | |
| #1026 fix: use (build-)base's coreutils in pebble part | rockcraft | merged | Merged after dual reviewer approval. Resolves issue #1023 by configuring the pebble part to use the build-base coreutils. The change modifies seven files and passed all CI checks. | |
| #177 project: use pebble snap instead of building | rockcraft | merged | Merged changes replacing local pebble binary builds with the published pebble snap. The update primes the binary as /usr/bin/pebble, reducing spread test runtime from ~32 to ~26 minutes. |