編集する

編集する

私のデバイスでOpenWrtを設定しようとしていますが、スペースが不足しています。いくつかのツールキットをダウンロードしています。これで、削除するアイテムを決定できるように重みを付ける方法は?

OPKGを使用してインストールされたパッケージのサイズを表示できますか?

ベストアンサー1

すべてのOpenWrt環境が同じように設定されるわけではないので、私の答えは盲目的です。

出力例は「TP-Link TL-WDR4300」のOpenWrt-12.09からのものです。

sshルーターに入ります。

ファイルシステムを確認してください。

root@AP9:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                    5184      2124      3060  41% /
/dev/root                 2048      2048         0 100% /rom
tmpfs                    63340       948     62392   1% /tmp
tmpfs                      512         0       512   0% /dev
/dev/mtdblock3            5184      2124      3060  41% /overlay
overlayfs:/overlay        5184      2124      3060  41% /
/dev/sda1             31234700    593536  29075728   2% /mnt/sda1

/dev/sda1私のUMTSスティックのマイクロSDカードです。無視してください。

多くのルータは、以下のように同様の方法でフラッシュされます。読み取り専用ルートファイルシステムは、オーバーレイファイルシステムによって擬似書き込みが可能になります。

見てください/overlay...

root@AP9:~# cd /overlay/usr/lib/opkg/info/
root@AP9:/overlay/usr/lib/opkg/info# ls *.list | tail -3
usb-modeswitch-data.list
usb-modeswitch.list
zlib.list

このディレクトリには、追加でインストールされたパッケージに関する情報が含まれています。で終わるファイルは、.list同じ名前(なし)のパッケージによってインストールされたファイルのリストです.list

root@AP9:/overlay/usr/lib/opkg/info# cat zlib.list 
/usr/lib/libz.so.1.2.7
/usr/lib/libz.so.1
/usr/lib/libz.so

パッケージにはzlib3つのファイルがインストールされています。

root@AP9:/overlay/usr/lib/opkg/info# du $(cat zlib.list) 
71      /usr/lib/libz.so.1.2.7
1       /usr/lib/libz.so.1
1       /usr/lib/libz.so

パッケージにはzlib73kbyteのインストールファイルがあります。

おおよその1ライナーはすべてを1つにまとめて出力を減らします。

# awk 'BEGIN{D="cd /overlay/usr/lib/opkg/info&&";C=D"ls *.list";while(C|getline>0){P=substr(F=$1,1,length($1)-5);J=D"du -sk $(cat "F")";s=0;while(J|getline>0){s+=$1;t+=$1}close(J);print s"\t"P}print t"\t---TOTAL---"}'
26      blkid
30      block-mount
17      chat
55      comgt
6       kmod-fs-exportfs
(((...some lines skipped...)))
14      portmap
48      swap-utils
223     usb-modeswitch-data
45      usb-modeswitch
73      zlib
4184    ---TOTAL---

はい!


2014年10月17日に追加:

次の出力は、「TP-Link TL-WR703N」のOpenWrt-12.09からのもので、パッケージサイズ別に出力ソートを追加する方法を示しています。

S変数がゲームにどのように入るかを確認してください...

# awk 'BEGIN{D="cd /overlay/usr/lib/opkg/info&&";C=D"ls *.list";S="sort -n";while(C|getli
ne>0){P=substr(F=$1,1,length($1)-5);J=D"du -sk $(cat "F")";s=0;while(J|getline>0){s+=$1;t+=$1}close(J)
;print s"\t"P|S}close(S);print t"\t---TOTAL---"}'
5       kmod-lib-crc16
5       luci-proto-3g
12      libuuid
13      kmod-usb-serial-wwan
17      chat
24      kmod-usb-acm
24      libusb
26      blkid
30      block-mount
41      kmod-usb-serial
45      usb-modeswitch
48      kmod-usb-serial-option
48      swap-utils
55      comgt
67      kmod-usb-storage
148     libblkid
154     kmod-scsi-core
223     usb-modeswitch-data
382     kmod-fs-ext4
1367    ---TOTAL---

また:ハ!


2018年1月13日に追加:

上記の方法はOpenWrt-AAでテストした。

これでLEDE-17.01を見ると、パスが変更されました。交換すると、この問題は/overlay解決しました/overlay/upper

現在の状態(opkg-list-user-installed-sorted-by-size1行とは異なります):

#!/usr/bin/awk -f
BEGIN {
        D="cd /overlay/upper/usr/lib/opkg/info&&"
        C=D"ls *.list"
        S="sort -n"
        while(C|getline>0) {
                P=substr(F=$1,1,length($1)-5)
                J=D"du -sk $(cat "F")"
                s=0
                while(J|getline>0) {
                        s+=$1
                        t+=$1
                }
                close(J)
                print s"\t"P|S
        }
        close(S)
        print t"\t---TOTAL---"
}

テスト実行:

root@zsun0:~# ./opkg-list-user-installed-sorted-by-size
8       luci-ssl
9       libustream-mbedtls
13      px5g-mbedtls
338     libmbedtls
368     ---TOTAL---

一般的な質問:/overlayこれらの構造変化はいつ発生しましたか? LEDE-17はOpenWrt-CCの後継製品であり、OpenWrtを実行するシステムはありません。したがって、OpenWrt-BBまたは-CCでこれが必要な場合は、まず内部を見てください/overlay

おすすめ記事