PageSourceSearch

https://penguins-eggs.net/assets/js/75c64ae7.1c7be231.js

js penguins-eggs.net collected 2026-10-03 23:11:12 UTC 12,989 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkpenguins_blog=globalThis.webpackChunkpenguins_blog||[]).push([[817],{96580(e,n,s){s.r(n),s.d(n,{default:()=>a,metadata:()=>i});var i=s(75945),r=s(11684),o=s(10506),t=s(70548);const l={authorsImageUrls:[void 0]};function d(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",img:"img",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.A,{}),"\n",(0,r.jsxs)(n.p,{children:["To re-build the blendOS ISOs, I started with the documentation on ",(0,r.jsx)(n.a,{href:"https://docs.blendos.co/",children:"blendOS Docs"}),", and then experimented, finding a way to use blendOS to recreate itself by removing the ",(0,r.jsx)(n.code,{children:"akshara"})," hook."]}),"\n",(0,r.jsxs)(n.p,{children:["Reasoning with ",(0,r.jsx)(n.a,{href:"https://github.com/rayvermey",children:"Ray Vermey"}),", I was told - and must agree - that using this method:"]}),"\n",(0,r.jsx)(n.p,{children:'"yes but then you take away one of Blends biggist reasons to exist :-)"'}),"\n",(0,r.jsx)(n.p,{children:'and, therefore, using Ray\'s suggestions, I began to inquire about a more "orthodox" version.'}),"\n",(0,r.jsxs)(n.p,{children:["This is the original ",(0,r.jsx)(n.a,{href:"https://github.com/rayvermey/blendos",children:"Ray Vermey way"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"do-this-from-a-cli-in-blendos-not-in-a-container",children:"Do this from a CLI in blendOs, NOT in a container:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"mkdir arch-chroot"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"sudo pacstrap -K arch-chroot base linux linux-firmware"})}),"\n",(0,r.jsx)(n.p,{children:"when that finishes, remount arch-chroot binded:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"sudo mount --bind arch-chroot arch-chroot"})}),"\n",(0,r.jsx)(n.p,{children:"then:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"sudo arch-chroot arch-chroot"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"pacman -S git archiso base-devel xorriso python python-psutil squashfs-tools"})}),"\n",(0,r.jsx)(n.p,{children:"Wait a bit, expecially at the end. Then:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"pacman -S python-cl
1ick nano"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"useradd -m -G wheel -s /bin/bash apprentice"})}),"\n",(0,r.jsxs)(n.p,{children:["use visudo to edit ",(0,r.jsx)(n.code,{children:"/etc/sudoers"}),":"]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"export EDITOR=nano; visudo"})}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"## Uncomment to allow members of group wheel to execute any command\n%wheel ALL=(ALL:ALL) ALL\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"passwd apprentice"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"su - apprentice"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"cd"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"mkdir blendos/build -p"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"cd blendos/build"})}),"\n",(0,r.jsx)(n.h2,{id:"installing-assemble",children:"Installing assemble"}),"\n",(0,r.jsx)(n.p,{children:"blendOS uses its own system, Assemble, for managing code and builds. It's quite similar to repo in the realm of Android development."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:'TEMP_ASSEMBLE_DIR="$(mktemp -d)"'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:'git clone https://github.com/blend-os/assemble "${TEMP_ASSEMBLE_DIR}/assemble"'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:'sudo cp "${TEMP_ASSEMBLE_DIR}/assemble/assemble" /usr/local/bin'})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:'rm -rf "${TEMP_ASSEMBLE_DIR}"'})}),"\n",(0,r.jsx)(n.p,{children:"You may now proceed to building blendOS."}),"\n",(0,r.jsx)(n.h2,{id:"initialize-an-assemble-repository",children:"Initialize an Assemble repository"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"assemble init 'https://github.com/blend-os/manifests' 'main'"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"assemble sync"})}),"\n",(0,r.jsxs)(n.p,{children:["edit ",(0,r.jsx)(n.code,{children:"/etc/pacman.conf"}),", and add the line:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"[blend]\nServer = https://pkg-repo.blendos.co/$repo/os/$arch\n"})}),"\n",(0,r.jsx)(n.p,{children:"then:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"sudo pacman -Syu"})}),"\n",(0,r.jsx)(n.h2,{id:"prepare-the-system-packages",children:"Prepare the system packages"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"source build/envsetup.sh"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"breakfast | tee breakfast.log"})}),"\n",(0,r.jsxs)(n.admonition,{type:"info",children:[(0,r.jsx)(n.p,{children:"I refreshed the instructions again, follow last indication of Ray. It seem to work like a charm. Just discarted the following part:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"sudo pacman -S rsync reflector\nsudo reflector -c Netherlands -f 10 > mymirror\nsudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak\nsudo cp mymirror /etc/pacman.d/mirrorlist\n"})}),(0,r.jsxs)(n.p,{children:["then, add line ",(0,r.jsx)(n.code,{children:"add SigLevel = Never"})," to ",(0,r.jsx)(n.code,{children:"/etc/pacman.conf"})," under all active repositories:"]}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"sudo nano /etc/pacman.conf\n"})})]}),"\n",(0,r.jsx)(n.h2,{id:"build-an-iso",children:"Build an ISO"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.code,{children:"sudo brunch"})}),"\n",(0,r.jsxs)(n.p,{children:["I did the actual blendOS-gnome-2023.07.15-x86_64.iso on penguins' eggs sourceforge page, starting from a blendOS-xfce-2023.07.15-x86_64.iso I previusly did before, and installed. You can found both on ",(0,r.jsx)(n.a,{href:"https://sourceforge.net/projects/penguins-eggs/files/ISOS/blendos/",children:"sf"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["This image ",(0,r.jsx)(n.a,{href:"https://sourceforge.net/projects/penguins-eggs/files/ISOS/blendos/blendOS-lxqt-2023.07.17-x86_64.iso/download",children:"blendOS-lxqt-2023.07.17-x86_64.iso"}),", was made with this way."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"ray-installing",src:s(83032).A+"",width:"1920",height:"993"})}),"\n",(0,r.jsxs)(n.p,{children:["Also this ",(0,r.jsx)(n.a,{href:"https://sourceforge.net/projects/penguins-eggs/files/ISOS/blendos/blendOS-ray-gnome-2023.07.16-x86_64.iso",children:"blendOS-ray-gnome-2023.07.16-x86_64.iso"})," was made in the same way to confirm the process and check waydroid."]}),"\n",(0,r.jsx)(n.h2,{id:"mastering-other-versions",children:"Mastering other versions"}),"\n",(0,r.jsx)(n.p,{children:"Once we have made our gnome version, we can create the others: plasma, xfce, cinnamon, etc. For the purpose I first move the ISO made outside the system, also to recover space, then:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{children:"cd blendos/build\nsource build/envsetup.sh\nsudo brunch\n"})}),"\n",(0,r.jsx)(n.h2,{id:"conclusions",children:"Conclusions"}),"\n",(0,r.jsx)(n.p,{children:"I did all the procedure - many, many times - it work nicelly."}),"\n",(0,r.jsx)(n.p,{children:"Actually following this procedure - just cut and copy commands - I was able to build blendOS from blendOS itself, from my Arch develop machine (colibri) and from a simple CLI Arch installation (naked)."}),"\n",(0,r.jsxs)(n.p,{children:["To be honest I like more to remove hook ",(0,r.jsx)(n.a,{href:"https://github.com/blend-os/akshara",children:(0,r.jsx)(n.code,{children:"akshara"})}),", build the ISO and then reintroduce it. I feel it more simple and I think this is a value more than a problem, but - of course - the authors know better than me."]}),"\n",(0,r.jsxs)(n.admonition,{type:"info",children:[(0,r.jsxs)(n.p,{children:["With ",(0,r.jsx)(n.a,{href:"https://github.com/pieroproietti/penguins-eggs",children:"penguins-eggs"}),", I'm using that way: remaster the system without ",(0,r.jsx)(n.code,{children:"akshara"})," and reintroduce the ",(0,r.jsx)(n.code,{children:"akshara"})," during installation with calamares or krill, just using theme ",(0,r.jsx)(n.a,{href:"https://github.com/pieroproietti/penguins-wardrobe/tree/main/vendors/blendos",children:"blendos"}),"."]}),(0,r.jsx)(n.p,{children:"In short, using eggs, I do this:"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["remove ",(0,r.jsx)(n.code,{children:"akshara"})," from ",(0,r.jsx)(n.code,{children:"/etc/mkinitcpio.conf"}),";"]}),"\n",(0,r.jsxs)(n.li,{children:["rebuild ",(0,r.jsx)(n.code,{children:"initramfs-linux-zen.img"}
1),": ",(0,r.jsx)(n.code,{children:"sudo mkinitcopio -g /boot/initramfs-linux-zen.img"}),";"]}),"\n",(0,r.jsx)(n.li,{children:"reboot;"}),"\n",(0,r.jsxs)(n.li,{children:["add ",(0,r.jsx)(n.code,{children:"chaotic aur"}),", just follow instructions on their site."]}),"\n",(0,r.jsxs)(n.li,{children:["install penguins-eggs: ",(0,r.jsx)(n.code,{children:"sudo pacman -Syu penguins-eggs"})]}),"\n",(0,r.jsxs)(n.li,{children:["configure it: ",(0,r.jsx)(n.code,{children:"sudo eggs dad -d"})]}),"\n",(0,r.jsxs)(n.li,{children:["add calamares: ",(0,r.jsx)(n.code,{children:"sudo eggs calamares --install"})]}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"eggs wardrobe get"})}),"\n",(0,r.jsx)(n.li,{children:(0,r.jsx)(n.code,{children:"sudo eggs produce --theme blendos"})}),"\n"]})]})]})}function a(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}s.d(n,["assets",0,l,"contentTitle",0,void 0,"frontMatter",0,{authors:"pieroproietti",slug:"the-ray-right-way",title:"the Ray right way",lang:"en",enableComments:!0},"toc",0,[{value:"Do this from a CLI in blendOs, NOT in a container:",id:"do-this-from-a-cli-in-blendos-not-in-a-container",level:2},{value:"Installing assemble",id:"installing-assemble",level:2},{value:"Initialize an Assemble repository",id:"initialize-an-assemble-repository",level:2},{value:"Prepare the system packages",id:"prepare-the-system-packages",level:2},{value:"Build an ISO",id:"build-an-iso",level:2},{value:"Mastering other versions",id:"mastering-other-versions",level:2},{value:"Conclusions",id:"conclusions",level:2}]])},70548(e,n,s){s.d(n,{A:()=>t});var i=s(12888),r=s(47387),o=s(11684);function t(){const{pathname:e}=(0,r.zy)(),n=[{label:"Deutsch",code:"de"},{label:"English",code:"en"},{label:"Espa\xf1ol",code:"es"},{label:"Fran\xe7ais",code:"fr"},{label:"Italiano",code:"it"},{label:"Polska",code:"pl"},{label:"Portuguese",code:"pt"},{label:"\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438",code:"bg"},{label:"\u0420\u0443\u0441\u0441\u043a\u0438\u0439",code:"ru"},{label:"\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430",code:"uk"},{label:"\u3084\u307e\u3068",code:"ja"},{label:"\u4e2d\u56fd",code:"zh"},{label:"\u0641\u0627\u0631si",code:"fa"}];return(0,o.jsx)("div",{style:{marginBottom:"1.5rem",lineHeight:"1.8"},children:n.map((s,r)=>{const t=`https://penguins--eggs-net.translate.goog${e}?_x_tr_sl=auto&_x_tr_tl=${s.code}&_x_tr_hl=${s.code}&_x_tr_pto=wapp`;return(0,o.jsxs)(i.Fragment,{children:[(0,o.jsx)("a",{href:t,style:{fontSize:"0.9rem",fontWeight:"500"},rel:"nofollow",children:s.label}),r<n.length-1&&(0,o.jsx)("span",{children:"\xa0 \u2022 \xa0"})]},s.code)})})}},83032(e,n,s){const i=s.p+"assets/images/installing-ray-dd4a8c60f7ff8d62afdc4bec3fdd4c67.png";s.d(n,["A",0,i])},10506(e,n,s){s.d(n,{R:()=>t,x:()=>l});var i=s(12888);const r={},o=i.createContext(r);function t(e){const n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),i.createElement(o.Provider,{value:n},e.children)}},75945(e){e.exports=JSON.parse('{"permalink":"/blog/the-ray-right-way","source":"@site/blog/2023-07-14-blendos-adventures.md","title":"the Ray right way","description":"To re-build the blendOS ISOs, I started with the documentation on blendOS Docs, and then experimented, finding a way to use blendOS to recreate itself by removing the akshara hook.","date":"2023-07-14T00:00:00.000Z","tags":[],"readingTime":3.61,"hasTruncateMarker":false,"authors":[{"name":"Piero Proietti","title":"penguins-eggs author","url":"https://github.com/pieroproietti","imageURL":"https://avatars.githubusercontent.com/u/958613?s=400&u=32ba40e6e416005540d2eb92a5d45f78470a4bd2&v=4","key":"pieroproietti","page":null}],"frontMatter":{"authors":"pieroproietti","slug":"the-ray-right-way","title":"the Ray right way","lang":"en","enableComments":true},"unlisted":false,"prevItem":{"title":"Alice in Wonderland","permalink":"/blog/alice-in-wonderland"},"nextItem":{"title":"arch-calamares-icu","permalink":"/blog/arch-calamares-icu"}}')}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.