Code Monkey home page Code Monkey logo

Comments (7)

drexljo avatar drexljo commented on June 2, 2024 1

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.

nailor avatar nailor commented on June 2, 2024

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.

denisguzeyev avatar denisguzeyev commented on June 2, 2024

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.

nailor avatar nailor commented on June 2, 2024

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.

jhermann avatar jhermann commented on June 2, 2024

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.

drexljo avatar drexljo commented on June 2, 2024

Hard links are no backup. So for most/all purposes they can be replaced by symlinks, which can cross filesystem boundaries.

from dh-virtualenv.

nailor avatar nailor commented on June 2, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.