• avocado@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    29 minutes ago

    Guys do not do this, it’s gonna cause a mess further down the line.

    “The problem with creating these links is that they aren’t managed in any meaningful way. If that library is removed, the link becomes broken. If the library is upgraded, it may encounter an error because of the link that it doesn’t expect to be there.”

    https://askubuntu.com/questions/461706/is-it-okay-or-not-to-symlink-libraries-to-overcome-cannot-open-shared-object

  • morto@piefed.social
    link
    fedilink
    English
    arrow-up
    21
    ·
    18 hours ago

    I remember when games would’t work with wine, complaining about some dll, I would get it from some random shady site and drop into the wine system dir. Some of the times, it worked, to even my own surprise

    • terranoid@lemmy.cafe
      link
      fedilink
      English
      arrow-up
      32
      ·
      18 hours ago

      “DLL finder”, holy shit I remember tools like that… God, now that I know how shared libraries work, that’s kinda terrifying people just saw that error message and downloaded whatever the fuck they found whereever they found it…

      Must be how some malware spread.

  • Skullgrid@lemmy.world
    link
    fedilink
    arrow-up
    66
    ·
    22 hours ago

    What about setting up a new environment correctly instead?

    Says the man that just copied and pasted, then checked in 800mb of shitty angular dependencies just to get Jenkins to be able to build his inherited project.

    It’s ok, they don’t pay me enough to support a family and don’t give a shit about this project, and it’s for internal use.

    • [object Object]@lemmy.ca
      link
      fedilink
      arrow-up
      65
      ·
      21 hours ago

      That’s so stupid.

      downloads and runs entire Linux distro just to run a python script without managing dependencies

    • corsicanguppy@lemmy.ca
      link
      fedilink
      English
      arrow-up
      8
      ·
      20 hours ago

      Jenkins

      This is where I spat my tea: not because jenkins is super old but because I still have residual PTSD from using it.

      My sympathies.

      • Skullgrid@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        19 hours ago

        not because jenkins is super old

        I mean, I just updated the wallpaper on that machine to be Ask Jeeves for maximum millennial retro points for when I use it and can tell at a glance which stupid VM I am looking at.

  • juipeltje@lemmy.world
    link
    fedilink
    arrow-up
    29
    ·
    21 hours ago

    Meanwhile as a guix+nix user i can just build it against that old library version because nothing can conflict with each other anyway

      • juipeltje@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        9 hours ago

        Well i use guix as a full OS but i still have nix installed as well for some packages that aren’t in guix

    • Skullgrid@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      15 hours ago

      can you teach me how to make a config file that only has lxqt? I tried the thing below replacing XFCE with LXQT and failed loads, I’m tired of wasting gigs and hours trying to make it work when I’m sleepy.

      spoiler
      ;; This is an operating system configuration generated
      ;; by the graphical installer.
      ;;
      ;; Once installation is complete, you can learn and modify
      ;; this file to tweak the system configuration, and pass it
      ;; to the 'guix system reconfigure' command to effect your
      ;; changes.
      
      
      ;; Indicate which modules to import to access the variables
      ;; used in this configuration.
      (use-modules (gnu))
      (use-service-modules cups desktop networking ssh xorg wm)
      
      (operating-system
        (locale "en_GB.utf8")
        (timezone "America/place")
        (keyboard-layout (keyboard-layout "gb"))
        (host-name "pc")
      
        ;; The list of user accounts ('root' is implicit).
        (users (cons* (user-account
                        (name "name")
                        (comment "name")
                        (group "users")
                        (home-directory "/home/name")
                        (supplementary-groups '("wheel" "netdev" "audio" "video")))
                      %base-user-accounts))
      
        ;; Packages installed system-wide.  Users can also install packages
        ;; under their own account: use 'guix search KEYWORD' to search
        ;; for packages and 'guix install PACKAGE' to install a package.
        (packages (append (list
                                (specification->package "xterm")) %base-packages))
      
        ;; Below is the list of system services.  To search for available
        ;; services, run 'guix system search KEYWORD' in a terminal.
        (services
         (append (list (service xfce-desktop-service-type) ;; I replaced this with  lxqt-desktop-service-type and it didn't "start" the DE properly when I logged in, I just got a blank screen, or worse, it failed to install properly with different "rest of the file"
      
                       ;; To configure OpenSSH, pass an 'openssh-configuration'
                       ;; record as a second argument to 'service' below.
                       (service openssh-service-type)
                       (set-xorg-configuration
                        (xorg-configuration (keyboard-layout keyboard-layout))))
      
                 ;; This is the default list of services we
                 ;; are appending to.
                 %desktop-services))
        (bootloader (bootloader-configuration
                      (bootloader grub-bootloader)
                      (targets (list "/dev/vda"))
                      (keyboard-layout keyboard-layout)))
        (swap-devices (list (swap-space
                              (target (uuid
                                       "666id")))))
      
        ;; The list of file systems that get "mounted".  The unique
        ;; file system identifiers there ("UUIDs") can be obtained
        ;; by running 'blkid' in a terminal.
        (file-systems (cons* (file-system
                               (mount-point "/")
                               (device (uuid
                                        "666id"
                                        'ext4))
                               (type "ext4")) %base-file-systems)))
      
      

      This is just to run in a VM in Virtual Machine Manager

  • palordrolap@fedia.io
    link
    fedilink
    arrow-up
    14
    ·
    20 hours ago

    In my experience, this works about 25% of the time and is cause for extreme nervousness about what will happen if it tries to call a function that isn’t actually present in the version it has been fooled into accepting.

    It’s never actually formatted my entire system even when it’s gotten me a little further, perhaps to a different sort of crash, but that fear is always there.

  • mlg@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    18 hours ago

    The most junk hack I ever did (that somehow worked) was replacing a Tensorflow 1.x library set with the Tensorflow 2.x library set and keeping the original 1.x symlink so that the software using it would think it’s still the 1.x. .so file lol.

    I presume the API had some deprecated fallback for poorly migrated software, which is why it worked without complaints.

    Also bazel is by far the worst build system I have ever used.

    • dan@upvote.au
      link
      fedilink
      arrow-up
      8
      ·
      edit-2
      18 hours ago

      COM solved all this stuff over 30 years ago. When you’re making breaking changes to an interface, you create a new one while still keeping the old one around (at least for a while). Both interfaces are shipped with the same DLL. Software written for the old interface continues to work, while newer software can take advantage of the extra features in the new interface.

      You can do something kinda similar in Linux with sonames, like libfoo.so.1, libfoo.so.2, etc. but there’s still a bunch of use cases where you need to use LD_LIBRARY_PATH, and they’re entirely separate libraries vs the COM approach where both interfaces are in a single library.

      Modern software keeps poorly reinventing the same concept. Software like Home Assistant has breaking changes between releases because they don’t have a consistent interface.

  • x0x7@lemmy.world
    link
    fedilink
    arrow-up
    2
    arrow-down
    2
    ·
    edit-2
    9 hours ago

    Ubuntu problems. Just use Arch. Then all of your software is from the same era… aka current.

    • iocase@lemmy.zip
      link
      fedilink
      arrow-up
      2
      ·
      9 hours ago

      I dont have this problem on Ubuntu somehow (yet?) Why does it happen to people?

      • Ŝan • 𐑖ƨɤ@piefed.zip
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 hours ago

        Lots of software isn’t “officially” available for Debian derivatives so þere’s more need for side-loading. You may not have encountered it because you haven’t yet come across some software you’d like to use which isn’t available in an official repos.

      • Pup Biru@aussie.zone
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        8 hours ago

        unlikely if you install from official repos, but it’s a more common occurrence installing random debs or curl totallylegit.ru | bash…. or… installing from rpms :p (which if something only ships via rpm is likely to be enterprise and targeting RHEL rather than fedora, so super old and a non-trivial chance of random patches to libraries)

        • iocase@lemmy.zip
          link
          fedilink
          arrow-up
          1
          ·
          8 hours ago

          Oh that makes sense. I think my instinct would be trying to get something like that running in a container personally. I dont like globally fucking with dependancies to solve one issue locally

  • BCsven@lemmy.ca
    link
    fedilink
    arrow-up
    7
    arrow-down
    1
    ·
    20 hours ago

    Its like the Gnome extension not available for your version, so you just edit the file to have your version in its list. Usually works