Car Package Manager
Car is the official package manager for Redrose Linux.
Getting Started
Initialize Car before using it:
commandcar init
This creates Car’s configuration directory and required files.
Update the package list regularly to keep your system synced with mirrors:
commandcar updatelist
Running this every few days ensures you always have the latest package information.
Regularly update packages:
sudo car update
Installed packages are tracked at:
directory~/.config/repro.car
Basic Commands
commandcar get <package> [--noconfirm]
car delete <package>
car update
car search <package>
car updatelist
car init
car get <package>— Installs a package.car delete <package>— Removes a package.car update— update system.car search <package>— Searches mirrors for available packages.car updatelist— Updates your local package list.car init— Initializes configuration directories and hooks.car list— show all installed packages.
Reinstalling Packages
Car reinstalls only when updates are available. To force reinstall a package manually, run:
commandsudo car delete <package>
sudo car get <package>
Autocorrection
Car can correct typos in package names. If a requested name doesn’t match exactly, Car installs the closest known match.
command with outputredrose% car get firfox
Note: Using firefox instead of firfox
Hooks
Hooks allow automatic actions after installation. To create one:
- Add a file to
~/.config/car/post-inst-hooks. - Define a
run(package)function inside that file.
Repositories
Repository definitions are stored in ~/.config/mirrors.car.
code:base:
install_script = https://raw.githubusercontent.com/crust-project/car-binary-storage/main/
packagelist = https://raw.githubusercontent.com/crust-project/car/main/existing-packages.txt
:end:
Each repository requires:
- A package list (text file, one package per line).
- A directory containing package installation scripts.
- A packagelist with latest versions.
Example package list:
textpackage1
package2
package3
Example package list with versions:
textpackage1=0.0.1
package2=0.0.2
package3=0.0.3
Car supports URLs and local paths (using file://), so you can create local repositories.
Example Repository Layout
treemy-repo/
my-package/
install_script
index.html
my-other-package/
install_script
index.html
versions.txt
packages.txt
Creating Packages
Each package must have an install_script. Example:
codeversion = "0.0.1"
def beforeinst():
print("Runs before installation")
def deps():
# not required
print(":: No dependencies required")
def build():
# not required
print(":: No build required")
def install():
pass
def postinst():
pass
beforeinst()— Runs before installation.deps()— Handles dependencies.build()— Builds the package if needed.install()— Installs package files.postinst()— Executes after installation finishes.
Submitting Packages
- Fork
car-binary-storageon GitHub. - Create a new directory for your package and add your
install_script. - Follow naming conventions (
-bin,-git,-stable). - Submit a pull request.
Our documentation is open source. You can help by contributing.