Comments (7)
Generally it's better to use symlinks and avoid hardlinks as much as possible, as
a) developers don't know where SysOps decide to mount different file systems which break hardlinks and
b) symlinks are visible to the user, thus functions and problems are more transparent
from dh-virtualenv.
Hi,
unless Iโm misreading the issue the link is created by virtualenv, and as such it is not something we can affect. Please reopen the issue if this is not the case
from dh-virtualenv.
Hi @nailor, thank you for the fast answer. Could you please reopen the issue
probably I provided a wrong part of source code.
This part exacrly causes mentioned above error:
hardlink or copy new interpreter
cp -fpl "/usr/bin/$pythonX_Y" "$interpreter_path,new" \
|| cp -fp "/usr/bin/$pythonX_Y" "$interpreter_path,new" \
|| rm -f "$interpreter_path,new" \
|| true
cp: cannot create hard link '{path}/bin/python2.7,new' to '/usr/bin/python2.7': Invalid cross-device link
from dh-virtualenv.
Sorry, my bad! Yes this indeed is in the upgrade script designed to catch cases where the Python interpreter updates on system level and to avoid breakage caused by it.
It should already have the or clause and fall back to regular copy if hard link fails. Unsure why that does not happen in your case.
for context we are defaulting to hard link as that is what virtualenv also sets up
from dh-virtualenv.
a) "backup" and "symlink" don't mix
b) the error msg can be ignored, if anything can be improved, then it'd be "2>/dev/null" in the 1st command
c) that code shouldn't trigger anymore anyway if you use venv, since stuff is not copied anymore. so another improvement would be to simply disable it then, since it server no purpose with venv (namely survive host python updates).
from dh-virtualenv.
Hard links are no backup. So for most/all purposes they can be replaced by symlinks, which can cross filesystem boundaries.
from dh-virtualenv.
Thanks @jhermann pointing out this is not an error but just the stderr output which is not redirected.
I think the error message being visible is fine, so since there isnโt anything really broken, closing the issue
from dh-virtualenv.
Related Issues (20)
- Support disabling pip in installed virtualenvs HOT 6
- `pip` tracebacks when not upgraded in build process and `python-pip-whl` package is not installed HOT 2
- Provide Alternative way to run test to avoid Warning HOT 3
- How to build both Python 2 and 3 packages? HOT 1
- cannot override default postrm/prerm maintenance scripts
- Question: Why skip package that start with python3? HOT 2
- allow multiple requirement files to be passed in HOT 1
- How to expose packages built with this tool on PYTHONPATH HOT 2
- Problem when higher version of setuptools (>44.0.0) is required
- dh-virtualenv package not available on bookworm HOT 1
- When calling /opt/venv/bin/myscript PATH is not properly defined
- fix_shebangs() fails HOT 2
- DH_PIP_EXTRA_ARGS doesn't work
- New Release with Python3.11 Support? HOT 7
- Allow for including pip packages in source tar
- How would I install additional files (e.g. systemd service file)? HOT 5
- -m venv does not understand the --verbose option HOT 1
- dh_strip gets error no dynamic section in dynamic segment HOT 2
- Python not found
- Egg and build files created in main folder
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 dh-virtualenv.