Comments (10)
So I already have:
- Covered
- It's a 130 LOC ksh shell script right now :)
- Ii's repo agnostic; actually it doesn't really have a concept of repos (this is in-line with pkgng from FreeBSD/DFly, pkg_add from OpenBSD, and pkgsrc)
- Sure, we can name it whatever :) pkg was just the easiest
- I like having source packages, but pkg will work even if a user never builds from source
- Not sure what you mean by this--right now my Ports Tree hooks directly into the LiteBSD build system. The difference is it creates packages instead of installing directly to the file system. This makes it the same as all the other *BSD package tools and ports trees.
- This is not a thing *BSD ports tree/pkg tools do. That's a Linuxism. (or an apt-getism specifically)
- One of the things all the BSDs have learned is playing with things outside ${LOCALBASE} (aka /usr/local) is extremely messy. pkgng does everything in ${LOCALBASE}. OpenBSD installs everything to ${LOCALBASE} then @sample's anything that needs to live elsewhere after install.
- I'm currently storing that info in ${LOCALBASE}/pkg but that can be changed.
- I haven't implemented version control yet. But that can be done.
- Haven't implemented version control yet.
- I called it "pkg add" (but this can be changed). Doesn't do dep checking yet.
- Implemented. I called it "pkg rm" but we can change the wording no problem.
- Not implemented yet
- Can be implemented
- That can very easily be done, I already have all the logic to do this (it's basically what I already have for "pkg info" but reads a different part of the plist)
- Already implemented. I called it "pkg info" but we can always change that. If "pkg info" is called without argument, it lists all installed packages. If you run "pkg info " it only gives you info for that package.
I would add that regardless of whatever the pkg tool ends up looking like, the ports tree should generate native packages for that tool.
from litebsd.
Rethinking this: once LiteBSD has a native toolchain, we should use pkgsrc. It does everything we want and we can "outsource" package updates to the pkgsrc team.
Plus, I'm already friends with NetBSD developers who develop pkgsrc on exotic platforms, so we can get help directly from the source if and when we need it.
from litebsd.
I concur, pkgsrc is a good idea. Simple makefiles configured via bsd.pkg.mk - it shoud work perfectly for our needs.
I got a book "Debian System" - I'm studying it now. It contains a couple of chapters which describe all the intrinsics of the package configuration framework in details. Most of this stuff is directly applicable to us. Some features are an overkill, so it makes sense to simplify.
As for the user interface, I would propose to follow the Linux style, just because most of people are already familiar with Linux. My estimation is that 98% of unixers know/use Linux, and 70% of linuxers use a system based on Debian, like Ubuntu or Mint.
from litebsd.
pkgin from pkgsrc already covers your user interface concerns. It's designed to be familiar to apt-get and yum users.
from litebsd.
But we could write something new if pkgin doesn't fit what we're looking for.
from litebsd.
Pkgin looks pretty small and nice by itself. Unfortunately, it relies on a presence of libsqlite3, which is huge.
from litebsd.
Considerations about using opkg utility for LiteBSD:
- It has GPL license, which makes it incompatible with the rest of the system. This is essentially the only drawback.
- My estimation of code size of opkg is about 200kbytes - looks good.
- Multiple remote repositories allowed.
- The name "opkg" is well known in the OpenWRT world.
- Source packages are not directly supported by opkg, which is OK for us.
- Traditional Debian tools provide a rich set of services for building binary and source packages. Opkg does not do this, for the sake of simplicity - it's OK.
- A list of repos is kept in /etc/opkg.conf.
- Configuration parameters are stored in "/etc/opkg.conf" file. Opkg allows to install files anywhere in the filesystem, not only in /usr/local. This makes it possible to upgrade the base operating system itself.
- Local database is stored in in "/var/lib/opkg/" directory, file cache - in "/var/cache/opkg/".
- "opkg update",
- "opkg upgrade",
- "opkg install foo",
- "pkg remove foo",
- "pkg search word",
- "pkg info foo",
- "pkg status foo",
- "pkg list" - All these operations are supported exactly as expected.
from litebsd.
Responded on the forum.
from litebsd.
I think we can close this now that we've moved everything to opkg.
from litebsd.
Agreed.
from litebsd.
Related Issues (20)
- New more(1) bug
- Zoneinfo failing to compile (breaks subsequent termcap installation) HOT 3
- #! not working properly HOT 1
- Ramp up getaddrinfo(3) and friends to modern versions
- long long printf fun
- Mg doesn't work on real hardware HOT 2
- Build failure on Slackware 32bit HOT 4
- as(1) instructions to work with pcc(1) (and lcc) HOT 7
- FPU support HOT 3
- PIC32-EMZ64 virtual com port HOT 6
- Assigning Pins to CAN controller HOT 1
- Build failure on Manjaro 64-bit HOT 11
- How to debug litebsd kernel with gdb on qemu? HOT 3
- Majenko SDZL board equivalent HOT 8
- C Compiler Problem HOT 7
- Error compiling kernel ""minor" "major" HOT 8
- Error running LiteBSD in QEMU HOT 1
- RISC-V support like CH32V307 MCU HOT 3
- Support for ESP32 HOT 3
- Problems compiling on Ubuntu 20.04 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from litebsd.