Behöver installera en pakethanterare för ett tomt Linux OS

Permalänk

Behöver installera en pakethanterare för ett tomt Linux OS

Jag har byggt mitt eget Linux OS. Jag saknar pakethanterare.
Hur kan jag installera en sådan igenom att använda förkompilerade filer?

Jag har testat installera dpkg igenom att packa upp allt och kopiera in. Detta fungerar faktiskt! Men det tar en jävla tid att göra detta manuellt. Man får hoppas på att länkarna aldrig ändras!

Klicka för mer information

#!/bin/bash # Download dpkg from ubuntu wget http://ports.ubuntu.com/pool/main/d/dpkg/dpkg_1.22.0ubuntu1_a... # Extract it ar -x dpkg_1.22.0ubuntu1_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / cp -a ./etc / cp -a ./var / cp -a ./sbin / cp -a ./lib / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/libm/libmd/libmd0_1.1.0-2bu... # Extract it ar -x libmd0_1.1.0-2build1_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/x/xz-utils/liblzma5_5.6.2-2... # Extract it ar -x liblzma5_5.6.2-2_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/g/glibc/libc6_2.38-1ubuntu6... # Extract it ar -x libc6_2.38-1ubuntu6.3_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / cp -a ./etc / cp -a ./lib / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/b/bzip2/libbz2-1.0_1.0.8-6_... # Extract it ar -x libbz2-1.0_1.0.8-6_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/libs/libselinux/libselinux1... # Extract it ar -x libselinux1_3.5-2ubuntu5_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/p/pcre2/libpcre2-8-0_10.42-... # Extract it ar -x libpcre2-8-0_10.42-4ubuntu2_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/libz/libzstd/libzstd1_1.5.5... # Extract it ar -x libzstd1_1.5.5+dfsg2-2build1.1_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/z/zlib/zlib1g_1.3.dfsg-3.1u... # Extract it ar -x zlib1g_1.3.dfsg-3.1ubuntu2.1_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/t/tar/tar_1.35+dfsg-3build1... # Extract it ar -x tar_1.35+dfsg-3build1_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / cp -a ./etc / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/z/zlib/zlib1g_1.3.dfsg-3.1u... # Extract it ar -x zlib1g_1.3.dfsg-3.1ubuntu2.1_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / # Clean rm -r * # Download wget http://ports.ubuntu.com/pool/main/a/acl/libacl1_2.3.2-2_armhf... # Extract it ar -x libacl1_2.3.2-2_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / # Clean rm -r * ## Configure dpkg - Not sure if being used! # Download wget http://ports.ubuntu.com/pool/main/g/glibc/libc-bin_2.38-1ubun... # Extract it ar -x libc-bin_2.38-1ubuntu6.3_armhf.deb unzstd data.tar.zst tar -xvf data.tar # Copy cp -a ./usr / cp -a ./sbin / #cp -a ./var / <- Don't need because it's empty cp -a ./etc / # Clean rm -r *

Visa mer

Men när dpkg är installerad. Då kan jag installera apt (vilket jag är mest van med). Men där är det ännu mera problem.
För då måste jag installera varje paket för sig. Denna kod gör så att den tankar ned (förhoppningsvis) alla paket som tillhör paketet apt och installerar dessa. Men problemet är att när jag installerar alla .deb filer så säger den att den saknar den ena eller andra .deb filen först. Detta är en sådan enorm opraktisk metod.

Så min fråga till er: Finns det något lättare knep? Jag behöver bara ha tillgång till Ubuntus paket och där efter så kan jag bara installera exakt allt vad jag vill.

Klicka för mer information

#!/bin/bash # Set the base address base_url="http://ports.ubuntu.com/" replace="amd64.deb" with="armhf.deb" package_name="apt" # List all dependencies for $package_name dependencies=$(apt-rdepends $package_name | grep -E '^ ' | sed 's/^ //g' | awk -F' ' '{print $2}' | sort | uniq) # Create the long wget string wget_string="" while read -r pkg; do file_path=$(apt-cache show $pkg | grep ^Filename | awk '{print $2}' | sort -V | head -n 1) url_path="$base_url$file_path" new_url_path=$(echo "$url_path" | sed "s/${replace}/${with}/") wget_string="$wget_string $new_url_path" done <<< "$dependencies" # Add the last wget wget_string="wget -nc $wget_string" # Save echo "#!/bin/bash" >> download_install_$package_name.sh echo "$wget_string" >> download_install_$package_name.sh echo "dpkg i *.deb" >> download_install_$package_name.sh # Make executable chmod +x download_install_$package_name.sh # End echo "Done!"

Visa mer
Permalänk
Medlem
Skrivet av heretic16:

Så min fråga till er: Finns det något lättare knep? Jag behöver bara ha tillgång till Ubuntus paket och där efter så kan jag bara installera exakt allt vad jag vill.

Jag tycker att det är lättare att använda ett byggsystem för att bygga mina embedded Linux distros så som Yocto, Buildroot eller OpenWRT. Byggsystemen producerar en image som man bara kan flasha istället för att plocka ihop enskilda delar samt att dessa blir kompilerade specifikt för din hårdvara.

Permalänk
Skrivet av orp:

Jag tycker att det är lättare att använda ett byggsystem för att bygga mina embedded Linux distros så som Yocto, Buildroot eller OpenWRT. Byggsystemen producerar en image som man bara kan flasha istället för att plocka ihop enskilda delar samt att dessa blir kompilerade specifikt för din hårdvara.

Jag använder faktiskt buildroot. Men buildroot har lite problem med sin pakethanterare.

Får inte RPM att fungera. Sedan saknar den Yum också.

Permalänk
Medlem

Allt är väl öppen källkod så du kan väl installera apt-get där och peka ut Ubuntus mirrors. Men jag antar att det är viss risk att du kommer få en hel del andra saker förutom just pakethanteraren som krävs för att den ska fungera med tanke på vilken central del den utgör i Debian/Ubuntu.

Det verkar som om du kan köra debootstrap eller cdebootstrap i så fall.