C语言的包管理器:clib
clib是C语言的包管理器。
Installation
Expects libcurl to be installed and linkable.
With homebrew:
$ brew install clib
With git:
$ git clone https://github.com/clibs/clib.git /tmp/clib $ cd /tmp/clib $ make install
Ubuntu:
# install libcurl $ sudo apt-get install libcurl4-gnutls-dev -qq # clone $ git clone https://github.com/clibs/clib.git /tmp/clib && cd /tmp/clib # build $ make # put on path $ sudo make install
About
Basically the lazy-man's copy/paste promoting smaller C utilities, also serving as a nice way to discover these sort of libraries. From my experience C libraries are scattered all over the web and discovery is relatively poor. The footprint of these libraries is usually quite large and unfocused. The goal ofclibsis to provide stand-alone "micro" C libraries for developers to quickly install without coupling to large frameworks.
You should useclib(1)to fetch these files for you and check them into your repository, the end-user and contributors should not require havingclib(1)installed. This allows clib(1) to fit into any new or existing C workflow without friction.
The wiki listing of packages acts as the "registry" and populates theclib-search(1)results.
Usage
clib <command> [options] Options: -h, --help Output this message -v, --version Output version information Commands: install [name...] Install one or more packages search [query] Search for packages help <cmd> Display help for cmd
Examples
Install a few dependencies to./deps:
$ clib install clibs/ms clibs/commander
Install them to./srcinstead:
$ clib install clibs/ms clibs/commander -o src
When installing libraries from theclibsorg you can omit the name:
$ clib install ms file hash
Install some executables:
$ clib install visionmedia/mon visionmedia/every visionmedia/watch
package.json
Example of a package.json explicitly listing the source:
{ "name": "term", "version": "0.0.1", "repo": "clibs/term", "description": "Terminal ansi escape goodies", "keywords": ["terminal", "term", "tty", "ansi", "escape", "colors", "console"], "license": "MIT", "src": ["src/term.c", "src/term.h"] }
Example of a package.json for an executable:
{ "name": "mon", "version": "1.1.1", "repo": "visionmedia/mon", "description": "Simple process monitoring", "keywords": ["process", "monitoring", "monitor", "availability"], "license": "MIT", "install": "make install" }
See explanation of package.json for more details.