AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-138012

Lockszmith's questions

Martin Hope
Lockszmith
Asked: 2022-07-12 09:56:15 +0800 CST

Como terminar o modo _follow_ em **less** (`+F`) do pipe?

  • 1

Assumindo o seguinte comando fictício no bash:

### dummy long_operation_cmd function, for easy reproduction:
function long_operation_cmd() {
  echo "operation 1"
  sleep 5
  echo "operation 2"
}

Atualmente estou executando um script bash da seguinte maneira:

{
    long_operation_cmd
    echo '===ALL DONE==='
} > /tmp/logfile.tmp &
tail -f /tmp/logfile.tmp | sed '/^===ALL DONE===$/ q' \
&& rm /tmp/logfile.tmp

Isso me permite executar a operação longa com segurança em segundo plano, rastrear a saída e garantir que Ctrl+C não interrompa a execução.

Mais importante ainda, quando a operação é feita, sedme tira do modo de acompanhamento.

Eu quero substituir tail -fpor less +F, e foi isso que eu criei:

{
    long_operation_cmd
    echo '===ALL DONE==='
} > /tmp/logfile.tmp &
less +F -- /tmp/logfile.tmp \
&& rm /tmp/logfile.tmp

No entanto, não consigo descobrir uma maneira de sair do modo de acompanhamento automaticamente quando o ===ALL DONE===padrão é atingido (ou quando a long_operation_cmdoperação é concluída).

Alguma sugestão para resolver isso?

bash sed
  • 2 respostas
  • 44 Views
Martin Hope
Lockszmith
Asked: 2022-06-27 21:13:24 +0800 CST

Livrando-se de "Os seguintes pacotes serão DOWNGRADED"

  • 19

Vou começar afirmando que tenho certeza de que essa é uma bagunça única do meu próprio design, mas espero que alguém tenha encontrado isso e possa ajudar.

A configuração

Meu laptop roda Pop!_OS 22.04 (Baseado no Ubuntu Jammy). Eu realmente gosto dos pacotes xscreensaver , mas os repositórios de lançamento Debian/Ubuntu/Pop!_OS contêm uma versão desatualizada, e apenas sid (também conhecido como Unstable) contém o pacote atualizado * .

Sem problemas, é por isso que a fixação existe, e é assim que eu configurei:

/etc/apt/preferences.d/unstable-200Arquivo:

Package: *
Pin: release a=unstable
Pin-Priority: 200

/etc/apt/preferences.d/xscreensaver-2000Arquivo:

Package: xscreensaver*
Pin: release a=unstable
Pin-Priority: 2000

/etc/apt/sources.list.d/debian.sid.listArquivo:

deb [arch=amd64] http://http.us.debian.org/debian sid main contrib non-free

Isso realmente funciona, neste momento, a execução sudo apt install xscreensaverinstala as versões atualizadas. No entanto, há um efeito colateral estranho.

O problema

Quando executo sudo apt updateseguido por sudo apt upgrade, recebo a seguinte saída:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be DOWNGRADED:
  alsa-topology-conf appmenu-gtk-module-common aspell-en ca-certificates
  chrome-gnome-shell dictionaries-common dns-root-data emacsen-common folks-common
  fonts-arphic-ukai fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-color-emoji
  fonts-urw-base35 friendly-recovery gir1.2-flatpak-1.0 gir1.2-gdkpixbuf-2.0
  gir1.2-graphene-1.0 gir1.2-gtksource-4 gir1.2-polkit-1.0 gir1.2-secret-1
  gir1.2-soup-2.4 gsfonts gsfonts-x11 hunspell-ar hunspell-de-at-frami
  hunspell-de-ch-frami hunspell-de-de-frami hunspell-en-au hunspell-en-ca hunspell-en-gb
  hunspell-en-us hunspell-en-za hunspell-es hunspell-fr hunspell-fr-classical hunspell-it
  hunspell-pt-br hunspell-pt-pt hunspell-ru hyphen-de hyphen-en-gb hyphen-es hyphen-fr
  hyphen-it hyphen-pt-br hyphen-pt-pt ieee-data javascript-common klibc-utils
  laptop-detect liba52-0.7.4 libappmenu-gtk2-parser0 libbytesize-common libffi8
  libflatpak-dev libgl1 libgles2 libgutenprint-common libgweather-4-0 libio-stringy-perl
  libjs-jquery libldacbt-abr2 libmpcdec6 libmysofa1 libopengl0 libpolkit-gobject-1-0
  libsndio7.0 libsoup-gnome2.4-1 libtermkey1 libvterm0 libwacom-common libxkbcommon0
  mythes-ar mythes-de mythes-de-ch mythes-en-au mythes-en-us mythes-es mythes-fr
  mythes-it mythes-pt-pt mythes-ru neovim-runtime netbase pass policykit-1 poppler-data
  powermgmt-base printer-driver-all python3-certifi python3-fido2 python3-jinja2
  python3-launchpadlib python3-lazr.uri python3-macaroonbakery python3-more-itertools
  python3-pkg-resources python3-pyatspi python3-rfc3339 python3-setuptools python3-tz
  python3-wheel python3-ykman sensible-utils sgml-base sgml-data sound-icons ssl-cert
  tpm-udev ucf update-inetd va-driver-all wamerican wbrazilian wbritish wfrench witalian
  wngerman wogerman wspanish wswiss xfonts-base xml-core yubikey-manager
0 upgraded, 0 newly installed, 125 downgraded, 0 to remove and 0 not upgraded.
Need to get 257 MB/283 MB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] 

Isso também elimina a contagem de atualizações do Pop!_OS Shop, com esses pacotes sendo exibidos como atualizações pendentes do sistema operacional.

Solução de problemas

Alguns dados que coletei ao tentar solucionar isso.

Remover /etc/apt/sources.list.d/debian.sid.liste executar sudo apt updateresolve o problema, então eu sei que é apenas um erro de cálculo/lógica falha em algum lugar.

Focando no primeiro pacote da lista alsa-topology-conf:

Embora eu saiba que o erro é completamente superficial, a princípio pensei de aptalguma forma rastrear de onde (qual repositório) o pacote veio, então removi, limpei e reinstalei o pacote. Não fez diferença.

sudo apt remove alsa-topology-conf
sudo apt clean
sudo apt update
sudo apt install alsa-topology-conf

Executando apt policy alsa-topology-conf, os resultados são:

alsa-topology-conf:
  Installed: 1.2.5.1-2
  Candidate: 1.2.5.1-2
  Version table:
 *** 1.2.5.1-2 200
        200 http://http.us.debian.org/debian sid/main amd64 Packages
        100 /var/lib/dpkg/status
     1.2.5.1-2 501
        501 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        501 http://us.archive.ubuntu.com/ubuntu jammy/main i386 Packages

Parece que ambos side jammytêm exatamente a mesma versão e, por algum motivo, aptcombinam o pacote com a 200prioridade, em vez da 501entrada de prioridade.

Com /etc/apt/sources.list.d/debian.sid.listremovido, a saída fica assim:

alsa-topology-conf:
  Installed: 1.2.5.1-2
  Candidate: 1.2.5.1-2
  Version table:
 *** 1.2.5.1-2 501
        501 http://us.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
        501 http://us.archive.ubuntu.com/ubuntu jammy/main i386 Packages
        100 /var/lib/dpkg/status

Perguntas relacionadas

A seguir estão perguntas relacionadas com situações semelhantes, mas nenhuma das respostas me ajudou a entender ou resolver isso.

  • apt fixando prioridade restrita
  • Debian 10: Por que alguns pacotes SSL serão rebaixados?
  • Como se livrar da mensagem apt "Pacotes foram rebaixados e -y foi usado sem --allow-downgrades"

Eu tentei todas as respostas nas perguntas acima, mas nenhuma parece ser relevante ou funcionar.

Minha pergunta

Alguém tem alguma sugestão de como conciliar isso para que o sistema não pense constantemente que esses pacotes precisam ser DOWNGRADED?

debian apt
  • 2 respostas
  • 1978 Views
Martin Hope
Lockszmith
Asked: 2019-07-08 09:40:09 +0800 CST

Como definir o LABEL de um disco (não partição)?

  • 4

Estive pesquisando e não consigo encontrar uma resposta clara, ou acho que a resposta é 'não' quando meu sistema me mostra o contrário.

Estou executando o Arch Linux e, ao anexar um novo HDD em um pool ZFS, notei que minha unidade principal do sistema SSD tem um LABELatributo/propriedade (não tenho certeza de qual é a terminologia).

NOTA: estou falando da unidade , não das partições dessa unidade.

Eu realmente gostaria de ter meus outros discos LABELassim, mas não consigo descobrir como fazer isso.

Alguém tem alguma ideia de como conseguir isso?

Abaixo está uma saída limpa lsblkpara ilustrar o que estou procurando. No meu sistema <#LABEL1#>está definido como visto na saída, quero definir/alterar <#WANTTHIS#>.

NAME      SIZE TYPE LABEL        PTTYPE PTUUID                               MODEL                 SUBSYSTEMS
loop0   ###.#M loop                                                                                block
loop1   ###.#M loop                                                                                block
loop2   ###.#M loop                                                                                block
loop3   ###.#M loop                                                                                block
sda     ###.#G disk <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa SomeModelString1      block:scsi:pci
├─sda1  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda2  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda3  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda4  ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda5  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda6  ###.#M part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda7  ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda8  ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda9  ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
├─sda10 ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
└─sda11 ###.#G part <#LABEL1#>   gpt    aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa                       block:scsi:pci
.
.
.
sdg     ###.#G disk              dos    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx SomeModelString2      block:scsi:pci
└─sdg1  ###.#G part <#LABEL2#>   dos    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx                       block:scsi:pci
sdh     ###.#T disk <#WANTTHIS#> gpt    bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb SomeModelString3      block:scsi:usb:pci
sdi     ###.#T disk <#WANTTHIS#> gpt    cccccccc-cccc-cccc-cccc-cccccccccccc SomeModelString3      block:scsi:usb:pci
├─sdi1  ###.#T part some-part    gpt    cccccccc-cccc-cccc-cccc-cccccccccccc                       block:scsi:usb:pci
└─sdi9  ###.#M part              gpt    cccccccc-cccc-cccc-cccc-cccccccccccc                       block:scsi:usb:pci
.
.
.

Edit: Depois de aceitar a resposta

Por @frostschutz No meu exemplo acima, FSTYPEno meu caso era zfs_member, e o rótulo era na verdade o nome do zfs-pool (que foi nomeado exatamente como o nome do meu sistema, então pensei que poderia tê-lo nomeado manualmente no passado - eu nao fiz).

O único identificador exclusivo relevante vinculado ao disco físico é o WWN, e aquele vinculado à tabela de partição GPT é o PTUUID.

Então, como em todas as outras respostas que encontrei antes, a resposta é 'NÃO'.
Não há como atribuir um nome a um dispositivo de disco.

De agora em diante, minhas lsblkopções de comando para listar IDs relevantes seriam:

$ lsblk --output=NAME,SIZE,RO,TYPE,WWN,PTTYPE,PTUUID,MODEL,SUBSYSTEMS,LABEL,PARTLABEL,PARTUUID,MOUNTPOINT
arch-linux udev
  • 1 respostas
  • 1131 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve