Comments (7)
Here is the full stacktrace:
Error: Could not symlink ../../../../../../../home/linuxbrew/.linuxbrew/Cellar/libvdpau/1.5/lib/vdpau/libvdpau_trace.so
Target /home/linuxbrew/.linuxbrew/Cellar/libvdpau/1.5/lib/vdpau/libvdpau_trace.so
is a symlink belonging to libvdpau. You can unlink it:
brew unlink libvdpau
To force the link and overwrite all conflicting files:
brew link --overwrite libvdpau
To list all files that would be deleted:
brew link --overwrite libvdpau --dry-run
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/extend/pathname.rb:330:in `symlink'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/extend/pathname.rb:330:in `make_relative_symlink'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/extend/pathname.rb:563:in `make_relative_symlink'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/keg.rb:593:in `make_relative_symlink'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/keg.rb:645:in `block in link_dir'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/pathname.rb:571:in `block in find'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/find.rb:49:in `block (2 levels) in find'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/find.rb:48:in `catch'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/find.rb:48:in `block in find'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/find.rb:43:in `each'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/find.rb:43:in `find'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/pathname.rb:571:in `find'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/keg.rb:622:in `link_dir'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/keg.rb:566:in `resolve_any_conflicts'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/keg.rb:661:in `block in link_dir'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/pathname.rb:571:in `block in find'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/find.rb:49:in `block (2 levels) in find'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/find.rb:48:in `catch'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/find.rb:48:in `block in find'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/find.rb:43:in `each'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/find.rb:43:in `find'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/lib/ruby/3.1.0/pathname.rb:571:in `find'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/keg.rb:622:in `link_dir'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/keg.rb:439:in `link'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cmd/link.rb:112:in `block (2 levels) in link'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/keg.rb:329:in `block in lock'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/lock_file.rb:35:in `with_lock'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/keg.rb:324:in `lock'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cmd/link.rb:107:in `block in link'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cmd/link.rb:57:in `each'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/cmd/link.rb:57:in `link'
/var/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb:86:in `<main>'
Pure speculation but I wonder if this is related to Silverblue symlinking /home to var/home
from brew.
Pure speculation but I wonder if this is related to Silverblue symlinking /home to var/home
This seems probable. Though symlink target being in the Cellar itself seems very odd and I'm not entirely sure what's so special about that particular file only?
Usually the error would be something like:
Error: Could not symlink lib/vdpau/libvdpau_trace.so
Target /home/linuxbrew/.linuxbrew/lib/vdpau/libvdpau_trace.so
from brew.
and I'm not entirely sure what's so special about that particular file only?
Actually, linking the other way around (mesa before libvdpau) gives the same symlink error but on a different file. Running brew unlink mesa libvdpau && brew link mesa libvdpau
outputs the following:
Unlinking /home/linuxbrew/.linuxbrew/Cellar/mesa/24.0.3... 0 symlinks removed.
Unlinking /home/linuxbrew/.linuxbrew/Cellar/libvdpau/1.5... 6 symlinks removed.
Linking /home/linuxbrew/.linuxbrew/Cellar/mesa/24.0.3... 75 symlinks created.
Linking /home/linuxbrew/.linuxbrew/Cellar/libvdpau/1.5...
Error: Could not symlink ../../../../../../../home/linuxbrew/.linuxbrew/Cellar/mesa/24.0.3/lib/vdpau/libvdpau_nouveau.so
Target /home/linuxbrew/.linuxbrew/Cellar/mesa/24.0.3/lib/vdpau/libvdpau_nouveau.so
is a symlink belonging to mesa. You can unlink it:
brew unlink mesa
To force the link and overwrite all conflicting files:
brew link --overwrite mesa
To list all files that would be deleted:
brew link --overwrite mesa --dry-run
from brew.
Hmm I wonder if it gets mixed up with handling the vdpau
subdirectory in /home/linuxbrew/.linuxbrew/lib
.
The correct behaviour is when the first formula is installed then that's a whole directory symlink, but when the second formula is installed it recognises that, makes it a regular directory and then symlinks the contents.
Definitely works correctly on Ubuntu so is probably some /var/home
incorrect handling.
I don't have a Silverblue setup on hand, though I'll look and see if there's a Docker image with a similar filesystem layout.
from brew.
Maybe also check output of brew link mesa --dry-run --verbose
as it should show commands brew
is attempting.
I'm guessing it could be handling of link where some parts of code directly use HOMEBREW_PREFIX/...
while others run .realpath
or .resolved_path
. Also possible that some symlink?
check on HOMEBREW_PREFIX
-rooted paths will break.
EDIT: Though it looks like some support went into #15656. May need to be debugged further by anyone who has Silverblue
from brew.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.
from brew.
Yeah it's definitely the /home
-> var/home
symlink.
I don't have a Silverblue setup on hand, though I'll look and see if there's a Docker image with a similar filesystem layout.
Try the following Dockerfile:
FROM debian:12
RUN apt-get -y update && apt-get -y install \
curl \
git \
gcc
RUN rm -r /home && mkdir /var/home && ln -s var/home /home
RUN useradd --create-home linuxbrew
USER linuxbrew
WORKDIR /home/linuxbrew
RUN /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ENV HOMEBREW_TEMP=/var/tmp
RUN .linuxbrew/bin/brew shellenv >>.bashrc
Just enter the container and try to install mesa.
from brew.
Related Issues (20)
- `==> ` prefix for installation status and/or deprecation status (and possibly others) HOT 1
- portable-ruby-3.3.2.arm64_big_sur.bottle.tar.gz "The use of 'ruby' has been blocked because it comes from an unidentified developer." HOT 6
- Include language package manager (e.g. `cargo`, `npm`, go modules) information in SBOMs HOT 1
- Tap with :latest does not download new application on explicit "update" command. HOT 1
- brew upgrade can actually downgrade casks in some configurations HOT 4
- Autoremove incorrectly removes build dependencies HOT 9
- `brew list` sometimes returns 1 when all arguments are installed HOT 1
- Cannot upgrade redis-stack-server HOT 1
- regression: Exit code is no longer `1` when listing versions of nonexistent formula/cask HOT 1
- Remove most global "monkey-patches" HOT 2
- Add a way to append linuxbrew to the end of path. HOT 3
- Failed to install Homebrew Portable Ruby HOT 11
- Add color to the instructions after install. HOT 7
- `brew cleanup` removes the current version of `portable-ruby` HOT 3
- Import
- redis-stack-server installation failed with redis-stack/redis-stack/redis-stack-server: undefined method `exists?' for class File HOT 1
- `cp: invalid option` when trying to update `zoom` cask HOT 2
- "brew audit --online" shouldn't check endoflife.date for private taps HOT 1
- homebrew -cask-fonts HOT 2
- iqiyi
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from brew.