[{"data":1,"prerenderedAt":160},["ShallowReactive",2],{"project-19789491":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":39,"post_text":30,"what":40,"said":71,"maker_in_thread":103,"shape":109,"grid":112,"attempts":123,"same_week":124,"maker_shows":35,"maker_hidden":153,"reader_version":154,"card":155},"19789491","apt-lock","Deterministically install Linux packages with apt-lock","title","Show HN: Deterministically install Linux packages with apt-lock","https:\u002F\u002Fgithub.com\u002FTrevorSundberg\u002Fapt-lock","github.com","TrevorSundberg",1556642350,2019,18,5,1253,2195,58,"shown","dev_tools","package locking","cli",[24,25,26,27,28],"apt","deterministic builds","lock file","linux packages","docker","quiet",null,{"positive":32,"neutral":33,"mixed":32,"critical":34},0,1,2,3,{"execution":37,"idea":38},{"positive":32,"critical":33},{"positive":32,"critical":33},[33,32,33,35,32],{"problem":41,"audience":48,"pricing":30,"motivation":53,"time_to_build":30,"stack":57,"openness":70,"stage":70,"team_size":70},{"value":42,"source":43,"evidence":44},"apt install without explicit versions can pull newer packages, breaking builds with unexpected changes.","maker",[45],{"id":46,"by":11,"text":47},"19794081","In short it just means it installs the exact same packages every time. If you write `apt install something` without an explicit version you may get a newer version depending on…",{"value":49,"source":50,"evidence":51},"Developers and teams building reproducible Linux environments, such as Docker images and build servers.","inferred",[52],{"id":46,"by":11,"text":47},{"value":54,"source":43,"evidence":55},"A Docker build server broke when an unpinned apt package updated with breaking changes.",[56],{"id":46,"by":11,"text":47},[58,66],{"value":59,"source":60,"evidence":61},"Node.js","commenter",[62],{"id":63,"by":64,"text":65},"19796976","stephenr","> limitations > Written in Node.js and packaged into an executable with nexe, so it's huge. Sorry it's not written in C. > future work > Rewrite in C or C++ to make it…",{"value":67,"source":60,"evidence":68},"nexe",[69],{"id":63,"by":64,"text":65},"unknown",{"praise":72,"objections":73,"requests":85,"questions":90,"alternatives":98},[],[74,78],{"value":75,"source":60,"evidence":76},"Written in Node.js and packaged with nexe, so the executable is huge.",[77],{"id":63,"by":64,"text":65},{"value":79,"source":60,"evidence":80},"The tool could be a short shell script rather than a compiled program.",[81,82],{"id":63,"by":64,"text":65},{"id":83,"by":64,"text":84},"19799227","For deb based distros at least all the tool needs to do is `apt-get install foo=x.y.z; apt-mark hold foo`",[86],{"value":87,"source":60,"evidence":88},"Rewrite in C or C++ to reduce size.",[89],{"id":63,"by":64,"text":65},[91],{"value":92,"source":60,"evidence":93},"What does package install determinism mean?",[94],{"id":95,"by":96,"text":97},"19794011","unmole","Perhaps because I'm unfamiliar with npm, I don't really understand what it's for. What exactly is \"package install determinism\"?",[99],{"value":100,"source":60,"evidence":101},"apt-get install with explicit version plus apt-mark hold.",[102],{"id":83,"by":64,"text":84},{"comments":34,"answered":34,"key":104},[105,108],{"id":106,"text":107},"19798063","Great point! Honestly I only started using linux back in October and my shell experience is still pretty limited, but growing.",{"id":46,"text":47},{"commenters":35,"max_depth":35,"maker_replies":34,"first_comment_mins":110,"lifespan_hours":111},591,24,[113,115,117,119,121],[63,32,33,114,64,32],"project\u002Fcritical\u002Fexecution",[106,32,32,116,11,33],"maker\u002Fneutral\u002Fnone",[83,32,33,118,64,32],"project\u002Fcritical\u002Fidea",[95,33,35,120,96,32],"project\u002Fneutral\u002Fidea",[46,33,32,122,11,33],"project\u002Fpositive\u002Fidea",[],[125,129,134,139,144,148],{"id":126,"name":127,"points":128,"category":20},"19774019","Lorem Picsum",880,{"id":130,"name":131,"points":132,"category":133},"19772097","1MB",744,"web_saas",{"id":135,"name":136,"points":137,"category":138},"19791073","CC Search",375,"creative",{"id":140,"name":141,"points":142,"category":143},"19756505","Sauron",305,"languages",{"id":145,"name":146,"points":147,"category":20},"19780790","Stretch",213,{"id":149,"name":150,"points":151,"category":152},"19801546","IPFS-Deploy",150,"infrastructure",false,"v2",{"id":156,"name":5,"line":6,"ai":153,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":157,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":158,"url":9,"mix":159,"praise":-1,"objection":75,"sub":21},19789491,[24,25,26,27,28],"10130",[32,33,32,34],1794036577144]