{"id":23657743,"url":"https://github.com/smok-serwis/pojeb","last_synced_at":"2025-09-01T09:30:40.768Z","repository":{"id":121196940,"uuid":"85824985","full_name":"smok-serwis/pojeb","owner":"smok-serwis","description":"Let's make package management great again","archived":false,"fork":false,"pushed_at":"2020-08-17T13:18:04.000Z","size":24,"stargazers_count":17,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-04T21:13:36.100Z","etag":null,"topics":["fuck","linux","package-creation","package-management","package-manager"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smok-serwis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-03-22T12:28:57.000Z","updated_at":"2025-03-11T08:28:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"6d851732-d778-44af-92dd-95a8e84864f1","html_url":"https://github.com/smok-serwis/pojeb","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/smok-serwis/pojeb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smok-serwis%2Fpojeb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smok-serwis%2Fpojeb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smok-serwis%2Fpojeb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smok-serwis%2Fpojeb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smok-serwis","download_url":"https://codeload.github.com/smok-serwis/pojeb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smok-serwis%2Fpojeb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273099827,"owners_count":25045697,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fuck","linux","package-creation","package-management","package-manager"],"created_at":"2024-12-28T21:57:29.854Z","updated_at":"2025-09-01T09:30:40.751Z","avatar_url":"https://github.com/smok-serwis.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pojeb\n\nPojeb is an extremely simplistic package manager. It has grown out of \nfrustration at existing Python build tools, which obviously _cannot perform\nthe simple task of placing a fucking file at a particular directory_.\n\nForget automatically placing your _/etc/init.d_ scripts, even if you\nare in total control of the environment!\n\nYou can do _virtualenv_, _wheel-based binary installs_, but you \ncan't get your job done and go home. Fuck it all.\n\n[Pythonrants](https://pythonrants.wordpress.com/) you right very much.\n\nInstall via the ninja one-liner:\n\n`wget --no-check-certificate -qO - https://github.com/smok-serwis/pojeb/raw/master/jebac-to | sudo bash`\n\nRequires _Python 2.x_, _sudo_, _wget_, _bash_, _tar_, _gzip_ and **root access**.\nYou don't have those? What are you running? Maybe not _fuck you_, but\na _shame on you_ certainly.\n\n# When do I use it?\n\nWhen you exact total control over your environment, because your layers\nof abstraction consist of containers and VMs, and not _fucking virtualenvs_.\n\nAnd you're not afraid of executing commands as root via shell, because you've\nautomated the fuck out of it, and your cluster is predictable, and not fucking\nevery VM has different distro of different version.\n\nFuck it, if your project requires sideloading 3 different versions of the same\npackage, then you're doing it wrong. Heartfelt **fuck you** for you.\n\n## Directory structure\n\nName of the package is encoded in jebfile. If it's named **fuck-you.jeb**, \nthen the name of the package is **fuck-you**.\n\n* _/etc/pojeb/wyjeb.d/_ - fucking scripts that remove your shit, eg.\n  * _/etc/pojeb/wyjeb.d/pojeb_ - script that removes **pojeb**\n* _/bin/\\*jeb_ - commands go here. If you don't like it, move'em. \n\n## Installation\n\n### The one-liner ninja way\n\n`wget -O - https://github.com/smok-serwis/pojeb/raw/master/jebac-to | sudo bash`\n\nCalling the one-liner again will simply update your _pojeb_.\n\n### The absolutely worst way\n\nCheckout the repo/unzip the zip with pojeb. Call `./install.sh` as root.\nDone.\n\n## Usage\n\n* _sudo dojeb your-package.jeb_ - install a package\n* _sudo dojeb https://example.com/your-package.jeb_ - download a package and install it. Requires wget.\n* _sudo wyjeb your-package_ - uninstall a package\n* _przyjeb username@remotehost your-package.jeb_ - install a package on\n  a remote machine. If pojeb is not there already, it will be transparently installed\n  via the ninja one-liner. **ssh** is \n  obviously required, and **sudo** must be callable on the target.\n* _zajeb your-package_ - make a .jeb package file from a directory \n  called your-package. This will result in a _your-package.jeb_ file.\n\nIf you add any extra arguments after dojeb or przyjeb, they will be passed to setup script.\n  \n# How do I make pojeb packages\n\nLet's say your are making a package called **fuck-you**. You should\nmake a directory called _fuck-you_. \n\nEverything here will get zipped when you call _zajeb_. Files with\nspecial meaning are listed below.\n\n### dojeb\n\nA script (with a shebang!) that installs your package. This is called\nas root, within the working directory of **fuck-you**. Pojeb will unzip\nthe .jeb file somewhere, chdir there and call _dojeb_. You just install\nshit.\n\nYou should return exit code 0. Otherwise, installation will be\nconsidered _failed_.\n\nThis should check if you are updating your own package. A good\nway to check it is checking for existence of \n_/etc/pojeb/wyjeb.d/fuck-you_. \n\nThis also receives any extra arguments for _dojeb_ or _przyjeb_.\n\n**This does not have to copy wyjeb. Pojeb will take care of that**\n\n### wyjeb\n\nAfter successful installation this is moved to _/etc/pojeb/wyjeb.d_, \nin this case as _/etc/pojeb/wyjeb.d/fuck-you_.\nThis is a script that removes your package. It gets called when you do\n_wyjeb fuck-you_. \n\n## and now\n\nAnd now get your ass to the directory containing directory _fuck-you_.\nFrom there, invoke `zajeb fuck-you`.\nNow _fuck-you.jeb_ is your package.\n\n**This does not have to remove /etc/pojeb/wyjeb.d/fuck-you. Pojeb\nwill take care of that**\n\n**If you don't put this file**, then your package will be un-uninstallable,\nand _wyjeb_ command will cry if you try to remove it.\n\n**Note: ** if package's _wyjeb_ script returns a non-zero error code, uninstallation will be treated\nas successful nevertheless, and the command will return 0.\n\n# FAQ\n\nQ: What should install/uninstall scripts be written in?\n\nA: I don't care. They must have a shebang, pojeb will chmod +x them,\n   and just run them. If it's available on your system, it's fair game.\n\n---\n\nQ: Why should I use pojeb?\n\nA: Because it allows you to get your shit done and go home early, or \n   do more interesting things instead of trying to put your files\n   somewhere.\n\n# lol wut\nIf you made it this far, then you know everything about pojeb there\nis to know. If you feel you need to know something else, file a\nbug report. Use the Issues tab for it. _Thank your for contributing_.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmok-serwis%2Fpojeb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmok-serwis%2Fpojeb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmok-serwis%2Fpojeb/lists"}