mcc,
@mcc@mastodon.social avatar

Looking into how to set up a bluesky server.

Noticed this bit here, in the documentation. That's an interesting way to spell "cannot"

ramsey,
@ramsey@phpc.social avatar

@mcc All I see is: “we wanted to commoditize your data.”

heluecht,

@mcc The way Bluesky works is different in many ways, when you compare it to a Fediverse system. The PDS is only one part of it and AFAIK it doesn't include the frontend. The next part is the handle and it isn't bound to the PDS - that's the difference to the Fediverse. This is a concept, that I find really nice.

However: There is a single central component in the whole concept: The handle directory. I would like to see, if Bluesky will change something about this.

mcc,
@mcc@mastodon.social avatar

@heluecht I agree the portable identity is great. The rest I'm not so impressed with.

The part I would think of as "centralized" is the service that scrapes all the PDSes and filters down the subset of events a given account is interested in. Because this is by design singular, and the rest is so aggressively structureless as to resist an alternate filter design, I think this is inherently always provided by bsky or a company with at least as much money as bsky.

mcc,
@mcc@mastodon.social avatar

@heluecht It's a little bit like the failings of blockchain. Sure, there can be more than one blockchain provider, but since every blockchain provider is doing the exact same work you aren't getting the scalability benefits of decentralization.

maegul,
@maegul@akkomane.social avatar

@mcc

bsky devs were saying (on bsky) that a PDS could talk directly to other PDSs if they wanted to and form an ActivityPub like flat network.

I’d guess that their PDS doesn’t do any such thing and I don’t recall any conversation about what the best way of doing that would be, whether ATProto supports that well, or, how that would interact with the central relay-AppView architecture … but there it is.

Presumably the best way for that to work would be to just run ActivityPub platforms with some sort of local PDS side loaded, which seemed like a nice way to go instead of the big central bridge.

mcc,
@mcc@mastodon.social avatar

@maegul In theory, the only reason I'm setting this up at all is so people I know on Bluesky can read things I write, so… as amusingly perverse as it feels like it would be to set up an ActivityPub-like flat network on atproto, if that's what I wanted, I'd probably just run ActivityPub.

maegul,
@maegul@akkomane.social avatar

@mcc

I’m not familiar with the details of ATProto … does it preclude flat social networking?

The interesting thing to me about the bluesky “idea” is hybridisation. So flat AP networks connecting to more centralised services as with bsky makes sense to me.

That sort of thing would is at least much more interesting/compelling to me than the “look, the fediverse is winning … by letting zuck run the by-far largest instance” idea floating around.

mcc,
@mcc@mastodon.social avatar

@maegul it's designed around the idea of a big central filter which fetches data from all PDSes and then filters out the small number of posts any given user wants to see. as far as i understand, the protocol has no inbuilt systems for anyone finding any content without relying on that central bottleneck. they basically designed a "decentralized" protocol that cannot operate without the centralized service they uniquely provide

mcc,
@mcc@mastodon.social avatar

@maegul The thing that makes it "decentralized" is that, in principle, someone could just set up a second giant bottleneck server that reproduces the work the first giant bottleneck server is doing. But because of the resources this would take, it would probably wind up having to be a Facebook or an OpenAI or someone else who, due to their size, would be no better than bsky itself.

maegul,
@maegul@akkomane.social avatar

@mcc

Thanks!! I was aware of all that already though …

Another way of asking would be whether the protocol gets in the way of smaller scale “relay-like” behaviour happening at the PDS level.

AFAIU, it’s a pull not push system. So the relay “scrapes” PDSs, and then is the only “push” actor in the system by providing the firehose to apps.

But could a PDS not scrape other PDSs and then present its own local firehose to whatever apps are designed to consume that (pretty much like AP but pull rather than push)?

Presumably this would only make sense for a much smaller sub-network of closely aligned PDSs looking to provide some relatively closed community (which I find generally interesting and curiously lacking on the fediverse). Then you’d get small, local, “private” social media combined with “big” and public.

I could very well be wrong but I think I’ve heard that the BlackSky stuff may be doing something like that??

mcc,
@mcc@mastodon.social avatar

@maegul Apologies for misunderstanding your question. Yes, I think that ought to in principle be possible and I've wondered about that too. But I don't think I personally would ultimately be interested in being the one doing that work. At that point you're basically forking bluesky to create something new, and if you're forking bluesky then you have to ask questions like whether this is actually the best basis for your new bespoke social network in the first place…?

mcc,
@mcc@mastodon.social avatar

@maegul Also kinda curious if pull is actually a good idea. Doesn't that imply a pretty high polling rate if you want posts to be visible in a reasonable amount of time?

klara,
@klara@wandering.shop avatar

@mcc They also love phrasing things in such a way to perpetuate the idea that Mastodon/etc. instances are completely separate and don't talk to each other.

Like. They never come out and say it. But if you read Bluesky stuff like this and already believe that, it will absolutely reinforce said belief.

mcc,
@mcc@mastodon.social avatar

@klara The biggest challenge I have with attempting to deal with bsky is whenever I read any of their documentation I encounter on average once every two paragraphs a lie which is so blatant and gross I have to stop and storm around the apartment brooding

mcc,
@mcc@mastodon.social avatar

Looks like installing the bsky pds server is done via the "curl this opaque installer.sh and run it". This isn't necessarily so bad, but if you look inside the installer.sh it turns out to silently install Docker. That's… interesting. I feel like that's a surprising thing for a script to do silently and in the background. Isn't that kinda heavyweight?

chriscunningham,
@chriscunningham@mastodon.social avatar

@mcc honestly hats off to them if they have developed a shell script that can reliably and silently install docker in a cross-distro manner

is it total brain worms? absolutely. but curl-to-bash, and technology in the 2020s in general, is all about plunging one's hand enthusiasically into the pain box

mcc,
@mcc@mastodon.social avatar

@chriscunningham On a closer read, the installer unconditionally calls apt-get (in multiple places, not just while installing Docker), and the section header in the README containing the script url— in retrospect this I should have noticed— is titled "Installer on Ubuntu 20.04/22.04 and Debian 11/12". It appears if you are not using a Debian-derived Linux distribution, then the bsky server has neither an installer nor install instructions.

This is… not impressive

chriscunningham,
@chriscunningham@mastodon.social avatar

@mcc I admire the commitment to idempotence ("if there is already a key, throw it away") and that despite having been in the industry for over 20 years this is the first time I've ever seen what the long argument for "mkdir -p" is (presumably because a linter complained)

tedmielczarek,
@tedmielczarek@mastodon.social avatar

@mcc I would simply never run anything again from the website that did that to me.

mcc,
@mcc@mastodon.social avatar

@tedmielczarek I'm not sure I can form an argument it's a completely unreasonable way to craft an installer, just… I dunno, maybe… tell… people… you're about to install Docker? Like the README doesn't actually say it's going to do this, it just mentions toward the end in passing something about a dockerfile, which lead me to read over the installer script to find out what it does, and uh… huh, wow

tedmielczarek,
@tedmielczarek@mastodon.social avatar

@mcc if a curl-to-bash script installs system packages I think it has gone beyond its remit.

mcc,
@mcc@mastodon.social avatar

I think I'm gonna have to join their discord to figure out how any of this actually works :( I am going to have to hold back SO many catty comments

mcc,
@mcc@mastodon.social avatar

Well despite a feeling that I'm a mouse gingerly inserting herself into a mousetrap, I've managed to install and boot the bsky data server. It immediately fails saying it can't open a file. It doesn't tell me what file. It just says it can't open a file. So I guess before I even get it working I'll be submitting a patch to bsky improving their error messages. I think the error means I have permissions set wrong on some directory but without knowing the failure path I can't know what directory :/

phi1997,

@mcc
Bluesky: bringing the opaqueness of mobile device error messages to a server near you!

mcc,
@mcc@mastodon.social avatar

When I got this error last night I was like "ha ha, what a silly small error" and figured this morning I'd get up and work it out

I CAN'T WORK IT OUT

It fails saying it can't open a file. It will not say what file.

pnpm link is doing nothing for me at all. i cannot inject a console.log to print the file it's trying to open

I tried strace. strace does not show opening a file!!!

I thought this was going to take minutes and I've been poking on and off all day :(

mcc,
@mcc@mastodon.social avatar

Is pnpm link different from npm link?

onelson,
@onelson@mastodon.social avatar

@mcc the extra P is for the Party in the front.

Gar,
@Gar@mastodon.social avatar

@mcc basically no. pnpm has flags for whether the linking makes the package also available globally, npm does not.

mcc,
@mcc@mastodon.social avatar

How does npm link interact with npm workspaces?

I want to npm link (pnpm link but whatever) an on-disk npm package A into a local project B.

However, "A" is a sub-package ( like, a workspace package https://docs.npmjs.com/cli/v7/using-npm/workspaces ) of another package "C". The npm repository entry for A https://www.npmjs.com/package/@atproto/pds just links to C.

So: If I want to make B use the on-disk version of A, do I pnpm link A? or C? Or both?

mcc,
@mcc@mastodon.social avatar

Returned to debugging this this morning, but suddenly was unable to get it to print the error message any message. After a certain amount of fiddling, believing I did not understand how systemd services worked, I discovered that in fact at some point during the debugging I actually fixed the error, thus resulting in the error message no longer printing. Unfortunately I continued debugging after the point at which it started working and in the process I managed to break it again

mcc,
@mcc@mastodon.social avatar

For a different reason tho

mcc,
@mcc@mastodon.social avatar

Incidentally an interesting thing I've learned reading the docs is that BlueSky significantly relies on CBOR. This is a reasonable choice but makes me very curious whether any part of the BlueSky stack is susceptible to duplicate key attacks.

austinlparker,
@austinlparker@hachyderm.io avatar

@mcc you might find this GitHub issue interesting in terms of what the PDS does — iirc, there’s at least one independent fork written in go floating around, but I don’t think it’s up to date, but it might be interesting? https://github.com/bluesky-social/atproto/discussions/2350

also the main pds source is in indigo, not in the pds repo - https://github.com/bluesky-social/indigo/tree/main/pds

mcc,
@mcc@mastodon.social avatar

@austinlparker yeah, i saw it said that in the README, and it is confusing to me, because I appear to be running the pds server right now, and there doesn't seem to be anything installed locally except typescript

austinlparker,
@austinlparker@hachyderm.io avatar

@mcc I believe the thing what’s in docker is a typescript PDS implementation which is based off https://github.com/bluesky-social/atproto

one thing you can do is throw in some OpenTelemetry environment variables in and run a local collector and it should start spitting out traces showing what’s going on

austinlparker,
@austinlparker@hachyderm.io avatar

@mcc that said the whole thing is still pretty janky in terms of “ease of use for self-hosting”, especially if you don’t want to use docker

mcc,
@mcc@mastodon.social avatar

@austinlparker Now that I've got it working I might redo it with docker, lol. I guess I should learn to use docker.

The docs get pretty vague at some essential points, however. It doesn't feel like anybody ever sat down and followed the directions step by step to see if the directions as written actually result in a usable server.

varx,
@varx@cybersecurity.theater avatar

@mcc Is CBOR particularly more vulnerable than other formats that support maps?

mcc,
@mcc@mastodon.social avatar

@varx By my read of the various specs, CBOR is less vulnerable, because its spec specifically states a map with duplicate keys is invalid whereas MsgPack and JSON leave the question open. However, a CBOR application can still be vulnerable if either the CBOR library it uses for decoding behaves improperly or the application does not decode in strict mode.

mcc,
@mcc@mastodon.social avatar

@varx In the case of a distributed application, the risk is that participants may be using a variety of implementations written in a range of programming languages and therefore individual actors may not have predictable behavior on little details like this. At the moment, bsky should be pretty safe since almost all users are using bsky's implementations— assuming, of course, that bsky thought about this and has tested for it on their own implementations.

varx,
@varx@cybersecurity.theater avatar

@mcc Oh, good to hear that CBOR's spec explicitly covers this!

But yeah, agreed that implementations vary...

varx,
@varx@cybersecurity.theater avatar

@mcc (I'm coming to this from just having decided to switch from MsgPack to CBOR in one of my apps.)

mcc,
@mcc@mastodon.social avatar

@varx was there a specific thing that tipped you over the edge on that decision?

varx,
@varx@cybersecurity.theater avatar

@mcc Honestly, it's the readability of the header bytes.

I'd used MsgPack in a previous project (not having heard of CBOR at the time) and so I didn't have a compelling reason to switch. I was a little bothered that MsgPack's spec is basically unmaintained at this point (the repo owner is completely unresponsive). Not a huge deal, though.

But then I wanted to write unit tests with exact byte output, and being able to read the hex/ASCII mix of CBOR headers easily was just... really nice.

varx,
@varx@cybersecurity.theater avatar

@mcc OK, so, the CBOR spec says in §2.1:

« A map that has duplicate keys may be well-formed, but it is not valid »

But then in §3.10 it tries to walk that back a bit and puts the onus on the sender to "avoid ambiguously decodable data" and defines an optional strict mode that decoders are not required to implement, particularly calling out duplicate key detection as a possibly heavy-weight requirement.

So close, yet so far. 😩

mcc,
@mcc@mastodon.social avatar

@varx It at least gives you the ability to say something like "a conforming interpreter for [protocol] will decode cbor in strict mode".

If it were up to me I'd prefer some kind of "verified msgpack" tho.

mcc,
@mcc@mastodon.social avatar

I have found it… the next evolution of curl | sudo sh

https://github.com/bluesky-social/pds/blob/main/pdsadmin.sh

Shell script that takes a subcommand, downloads a script by the name of the subcommand from github, then executes it as root

mcc,
@mcc@mastodon.social avatar

Although it seems unlikely anyone would ever do this, I note that this script will perfectly well accept the input

./pdsadmin.sh ../../../../any-github-account-here/any-github-file-here

And will have a very interesting behavior in this situation

TauPan,
@TauPan@mastodon.social avatar

@mcc Let me leave a quick issue comment on the bsky pds repo. Just in case they start filtering out '../'...

https://www.bleepingcomputer.com/news/security/github-comments-abused-to-push-malware-via-microsoft-repo-urls/

mcc,
@mcc@mastodon.social avatar

@TauPan oh no oh NO

mcc,
@mcc@mastodon.social avatar

Anyway as of fifteen minutes ago I have an empty but functional bsky data server with no users or posts and a "ticket" with a discord bot to be added to federation (the way you get federated on bsky is you send a message to a discord bot)

emaytch,
@emaytch@mastodon.social avatar

@mcc wow, that’s uh. something. when it comes to a VC-backed company

mcc,
@mcc@mastodon.social avatar

@emaytch The thing that is interesting to me about it is that being "federated" means being recognized by a single central authority (the VC-backed company). That doesn't sound like decentralization and sort of doesn't sound like a federation for that matter

phi1997,

@mcc
It's the worst of both worlds: you are beholden to a corporation to have any access to the network and it's running on your own server that you have to manage.
@emaytch

ramsey,
@ramsey@phpc.social avatar

@mcc @dangillmor @emaytch It’s federalization.

rysiek,
@rysiek@mstdn.social avatar

@mcc what a ride.

claus,
@claus@chaos.social avatar

@mcc "to federate with bsky please send a postcard to Chad in Huntsville, TN"

mcc,
@mcc@mastodon.social avatar

@claus federation by QSL cards sounds kinda fun tho

aeva,
@aeva@mastodon.gamedev.place avatar

@mcc I've got a hunch I know what comes next

ChateauErin,
@ChateauErin@mastodon.social avatar

@mcc I cannot comprehend the thought process behind "okay! we have this messaging service! how should people join? using this other messaging service of course"

leah,
@leah@blahaj.social avatar

@mcc not worse than posting to a Yahoo!Group, eh? ;)

mcc,
@mcc@mastodon.social avatar

@leah I had some good times on Yahoo groups

loke,
@loke@functional.cafe avatar

@mcc so basically this is not federation at all, but rather you donating compute resources to the bluesky system?

mcc,
@mcc@mastodon.social avatar

@loke Yes, I think that is a totally accurate summary

mcc,
@mcc@mastodon.social avatar

Continuing bsky "federation" adventure

  • They authorized my federation within 3 hours, which I guess is pretty good on a Sunday night
  • I then attempted to create an account using the admin shell scripts. This failed BUT did generate an "invite code"
  • So I attempted to create an account using the Android app (which does let you create accounts on independent servers with an invite code). This got as far as this step, which I assume is a CAPTCHA. But I didn't make a CAPTCHA. So it's a 404 page:
mcc,
@mcc@mastodon.social avatar

There are at least three things about the above screenshot (from the Bluesky Android app) which I find noteworthy, from a UX critique perspective

mcc,
@mcc@mastodon.social avatar

So the PDS software that hosts "bluesky" accounts has a built-in list of banned account names. It includes both names an admin would want to reserve for themselves ("admin", "staff", "test") and noteworthy Twitter handles that presumably they wouldn't want impersonators to grab ("arianagrande" "jairbolsonaro"):

https://github.com/bluesky-social/atproto/blob/b07950682c51b1aa2216958178aa4eae437846e6/packages/pds/src/handle/reserved.ts

But, interestingly, this banned names list

  • Is also live with third-party servers
  • Also applies to the command-line administrator scripts? There's no override?
mcc, (edited )
@mcc@mastodon.social avatar

So how do… how did… like, isn't the point of reserving account names that the administrators can then themselves assign the reserved account names? But the administrator tools are also banned from assigning the reserved account names? What were they going to do if Jair Bolsonaro ever wanted to create a Bluesky account? Anyway this is currently frustrating me because the first thing I wanted to do with my new PDS was create an account on my domain named "test" and that's the one thing I cannot do

tef,
@tef@mastodon.social avatar

@mcc > What were they going to do if Jair Bolsonaro ever wanted to create a Bluesky account?

they only lifted the "no heads of state" policy this month

mcc,
@mcc@mastodon.social avatar

@tef is ariana grande legally a head of state, i'm not sure how british law works

tef,
@tef@mastodon.social avatar

@mcc honestly brexit has been a very confusing time for us all, i can't say

gnomon,
@gnomon@mastodon.social avatar

@mcc you're going to have to name your test account arianaventi

edit: this was stupid, I regret posting this

ShinyQuagsire,
@ShinyQuagsire@mastodon.social avatar

@mcc some of them are for other purposes, ie search allows from:me to find your own posts

mcc,
@mcc@mastodon.social avatar

@ShinyQuagsire that makes sense but also i can imagine some people would want to be me.name.domain lol

mcc,
@mcc@mastodon.social avatar

Hey follow me on bsky at ⚠️Invalid Handle. I have a much cooler handle than other bsky users because all other bsky accounts start with a @ but mine starts with a ⚠️. My name also contains a space, which is normally illegal. Here's a screenshot of me logged in as ⚠️Invalid Handle

mcc,
@mcc@mastodon.social avatar

Okay!! Okay. That was an aggressively unpleasant, unfriendly experience, and my better judgement still thinks this is a mistake, but I now have an independent "bluesky" server set up. (At least the people in the Discord were nice and very helpful, altho I don't think any of them worked for "bluesky").

If you have an account on the Enclosure, follow me at "@ dryad.technology"

https://bsky.app/profile/dryad.technology

And if you know the bsky handles of the 2010s indie games people who aren't on Mastodon lmk lol

mcc,
@mcc@mastodon.social avatar

I originally generated two bsky account IDs, one for testing and one for my main account, but wound up using the test id for the main account because by total fricking coincidence my randomly-generated identifier turned out to contain vaguely hilarious legible English text in its base64/base58:

did:plc:2aebn3xk5t63net43eeepire

look at that

net eeepire

Behold, my net eepire

eeeeepire

mcc,
@mcc@mastodon.social avatar

It's like an empire but eepy

mcc,
@mcc@mastodon.social avatar

Things I wish I had known before trying to set up a "bluesky" PDS:

Dockerless instructions:
https://benharri.org/bluesky-pds-without-docker/

Set up mod_proxy to support WebSockets upgrades:
https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html

Check if your DID authenticates:
https://bsky-debug.app/handle?handle=your-bsky-handle-here.com

Check if your DID is registered:
https://plc.directory/did:plc:yourbskydidhere

Test a websocket cmdline:
https://github.com/vi/websocat

Pretty print the bsky logs without crashing:
sudo journalctl --unit=[unit] --output=cat -f | jq -R 'fromjson? | select(type == "object")'

tess,
@tess@mastodon.social avatar

@mcc it's sad that you don't intend to do too much with this instance because you're one of the few people I'd trust to actually run an AT node

TauPan,
@TauPan@mastodon.social avatar

@mcc btw. lnav is great at processing logs, also in json. Never tried bluesky of course

dj2mn,
@dj2mn@mastodon.sdf.org avatar

@mcc this all confirms exactly why I decided to put off trying to set up my own PDS for 6-12 months.. I wouldn’t have got past the first hurdle before giving up. Thanks for taking one (or several) for the team!

mcc,
@mcc@mastodon.social avatar

@dj2mn Perhaps you will also find this useful. One of the people who was helping me in the discord wrote it afterward lol https://www.meganwalker.me.uk/2024/04/troubleshooting-the-bluesky-pds-personal-data-server/

acb,
@acb@mastodon.social avatar

@mcc or a very smol vampire

beeoproblem,
@beeoproblem@mastodon.gamedev.place avatar

@mcc I'm imagining armies of eevees marching across the world

NoraReed,
@NoraReed@mastodon.social avatar

@mcc i occasionally see accounts doing this on purpose. it's weird.

mcc,
@mcc@mastodon.social avatar

@NoraReed On bsky?

NoraReed,
@NoraReed@mastodon.social avatar

@mcc yeah

mcc,
@mcc@mastodon.social avatar

@NoraReed Well in my testing if you've jammed your account into ⚠️Invalid Handle state you also can't follow people or post, so unless they've found a superior method it doesn't really seem worth doing

NoraReed,
@NoraReed@mastodon.social avatar

@mcc huh. I'm not sure how they did it then but i see people with invalid handle posting occasionally

bobayaga,
@bobayaga@blahaj.social avatar

@NoraReed @mcc The one I saw was able to post about how the only effect he noticed was becoming Unmentionable

mcc,
@mcc@mastodon.social avatar

@bobayaga @NoraReed I had two separate problems (broken did, broken websockets) so i now believe i could reproduce this state if i fixed websockets but broke my did

tess,
@tess@mastodon.social avatar

@mcc @NoraReed actually this seems to be the best way to interact with social media

tiff,
@tiff@bunny.blue avatar

@mcc I'm now very curious how it'll react to my domains with emojis in them. Want to borrow a subdomain to test it out?

mcc,
@mcc@mastodon.social avatar

@tiff lol as the above screenshot may hint i can't even get it to work on my subdomains

tojiro,
@tojiro@mastodon.social avatar

@mcc That's a fascinating list!

My favorite part is that after all the common terms and famous people is "a couple more prominent accounts, subjectively" which contains accounts like "potus", "aoc", "gretathunberg", and... "dril".

tedmielczarek,
@tedmielczarek@mastodon.social avatar

@tojiro @mcc wait, I thought dril moved to bsky?

mcc,
@mcc@mastodon.social avatar

@tedmielczarek @tojiro Then presumably the administrators have some way of manually entering a name change that doesn't go through the scripts in the github distribution.

mhoye,
@mhoye@mastodon.social avatar

@mcc @tedmielczarek @tojiro What happens if somebody spinning up their own instance decides to use some or all of those names for funs?

mcc,
@mcc@mastodon.social avatar

@mhoye @tedmielczarek @tojiro

  1. Usernames on bluesky are domain names. Presumably, someone would be able to figure out arianagrande.freedomains.com is possibly not the real ariana grande.

  2. This said, the system appears to incredibly strongly resist using a name on the banned names list through any mechanism. I am trying to set up test.bsky.runhello.com and failing miserably

joshin4colours,
@joshin4colours@mastodon.social avatar

@mcc this whole thread is amazing and thank you for doing this! Have you done something similar with a Mastodon instance (set one up and/or tooted about it?)

mcc,
@mcc@mastodon.social avatar

@joshin4colours No, but maybe I will someday later. I'm basically happy with mastodon.social (although I wish I could have my own domain name after the @!)

moira,
@moira@mastodon.murkworks.net avatar

@mcc "Step 3 of 2"?

mcc,
@mcc@mastodon.social avatar

@moira That was one of the things I found "interesting"

phillmv,
@phillmv@hachyderm.io avatar

@mcc i applaud the effort involved but i have a question: what are the incentives for running a PDS? are you just exploring a solo server so that you could in theory migrate away more easily or not rely on a third party to export your data should another billionaire attack the network?

mcc,
@mcc@mastodon.social avatar

@phillmv There are many downsides and as far as I can see only one upside: Potential for a very fast exit, if I choose

gkrnours,
@gkrnours@mastodon.gamedev.place avatar

@mcc and contrary to bare curl pipe bash, this one removes the downloaded file once its done. No auditing what happened \o/

mcc,
@mcc@mastodon.social avatar
rysiek,
@rysiek@mstdn.social avatar

@mcc jeebus...

bk1e,
@bk1e@mastodon.social avatar

@mcc The curl is coming from inside the house!

onyxraven,
@onyxraven@hachyderm.io avatar

@mcc IIRC npm link creates a symlink in your global node_modules dir (somewhere in /usr/local) to the pkg you are linking. that means then you can reference it elsewhere without it installing in to that folders node_modules. So, it kinda sidesteps workspaces.

for linking packages together, I've been using the file:$path method when they always live 'together' but not in the same workspace. But, if you're doing a test you may want to link so that you can use the version spec.

mcc,
@mcc@mastodon.social avatar

@onyxraven Is there a way to permanently remove all such global symlinks?

onyxraven,
@onyxraven@hachyderm.io avatar

@mcc aside from a find for symlinks in that directory? (i think npm path -g?) I don't know of one. I've gone as far as nuking the whole thing to correct bad links before :(

mcc,
@mcc@mastodon.social avatar

@onyxraven I tried nuking the whole thing earlier but in the process I appear to have deleted npm

irenes,
@irenes@mastodon.social avatar

@mcc now of course we're tempted to jump in with debugging "advice" but we doubt we'd see anything you haven't. strace really ought to be the definitive view of things...

mcc,
@mcc@mastodon.social avatar

@irenes I think I should just focus on making npm link work

irenes,
@irenes@mastodon.social avatar

@mcc makes sense

dorianfm,
@dorianfm@mastodon.social avatar

@mcc oblique thought - if it won’t say what file is is because the file path is not defined?

KevinOfComputer,

@mcc Apologies if you're not looking for advice, and you've likely already done this, but could try strace with -f to follow child processes?

mcc,
@mcc@mastodon.social avatar

@KevinOfComputer good guess but I tried it

sigkate,
@sigkate@hachyderm.io avatar

@mcc strace is your friend

mcc,
@mcc@mastodon.social avatar

@sigkate Oh no. This is a good idea. Oh no :(

Wait can I strace something that's launched by systemd

cestith,
@cestith@mastodon.social avatar

@mcc @sigkate well, you can edit the unit file to launch it with strace and produce an output file. You could also launch strace with the -p flag against the PID of the process if you can catch it while it's running.

vwbusguy,
@vwbusguy@mastodon.online avatar

@mcc @sigkate You can with strace -f so that it also follows child processes.

drgroftehauge,
@drgroftehauge@sigmoid.social avatar

@mcc Maybe they just always run it in a docker container with default user.

mcc,
@mcc@mastodon.social avatar

@drgroftehauge They do always run it in a docker container, yeah. I'm off the supported path already simply by "running the software"

not2b,
@not2b@sfba.social avatar

@mcc
Developer: well, it works on my machine.

Manager: well, how can we just ship your whole machine?

Docker: we can do that for you.

mcc,
@mcc@mastodon.social avatar

@not2b it's not a terrible idea i'm just afraid of attempting to unpack something that turns out to be larger than the vps i'm deploying it onto

xlerb,
@xlerb@sfba.social avatar

@mcc IIRC Docker does some fairly invasive things to the networking setup — creating bridge devices and installing a bunch of iptables rules that also affect traffic that has nothing to do with Docker. I remember feeling somewhat gleeful when I could uninstall it, so yeah, I'd probably be a little salty if something reinstalled it with no warning.

mcc,
@mcc@mastodon.social avatar

@xlerb yikes. thanks for the warning, i already was kinda gunshy "won't installing this have Consequences?" but it's good to have that confirmed D:

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • magazineikmin
  • rosin
  • Youngstown
  • mdbf
  • ngwrru68w68
  • slotface
  • khanakhh
  • ethstaker
  • everett
  • kavyap
  • thenastyranch
  • DreamBathrooms
  • tacticalgear
  • osvaldo12
  • JUstTest
  • InstantRegret
  • Durango
  • cisconetworking
  • modclub
  • cubers
  • GTA5RPClips
  • tester
  • normalnudes
  • Leos
  • provamag3
  • megavids
  • anitta
  • lostlight
  • All magazines