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 / unix / 问题

All perguntas(unix)

Martin Hope
dylanmorroll
Asked: 2025-03-17 18:43:09 +0800 CST

Os colchetes/interpretações de prioridade do apt_preferences mudaram ao longo do tempo?

  • 8

Se você verificar as próprias páginas do manual, verá que a prioridade para o colchete mais baixo está definida como:

       0 < P < 100
           causes a version to be installed only if there is no installed
           version of the package

No entanto, encontrei alguns lugares que fazem referência a um colchete diferente de 0 < P <=100:

  • apt - Sistema de prioridade de pinos e atualização - Unix & Linux Stack Exchange
  • apt_preferences(5) - página de manual do Linux

E até mesmo alguns exemplos de 0 <= P <=100:

  • preferências_apt
  • Re: confusão de fixação adequada

Isso mudou ao longo do tempo ou existem apenas algumas informações erradas circulando?

Se mudou ao longo do tempo, há algum lugar onde eu possa ver quais faixas de prioridade estão em uso em diferentes distribuições?

apt
  • 1 respostas
  • 220 Views
Martin Hope
Aniruddha
Asked: 2025-03-17 09:54:03 +0800 CST

Por que alguns arquivos não podem ser pesquisados?

  • 5

Achei que todos os arquivos eram pesquisáveis, mas estou analisando uma base de código que lida com casos em que um arquivo não é pesquisável.

Por que isso é necessário?

Em quais cenários um arquivo não poderia ser encontrado e por quê?

files
  • 1 respostas
  • 110 Views
Martin Hope
jsx97
Asked: 2025-03-17 01:11:30 +0800 CST

Tornar o script executável: chmod +x vs. a+x vs. a+rx

  • 5

Para tornar um script de shell executável, parece haver três opções:

  • Opção 1:chmod +x script.sh
  • Opção 2:chmod a+x script.sh
  • Opção 3:chmod a+rx script.sh

Aqui estão duas perguntas.

Q1. O que realmente significa que a primeira e a segunda opções concedem permissão para executar, mas não concedem permissão para ler? Como isso é possível na vida real?

Q2. Qual dessas opções é recomendada para um caso geral? Ou, para tornar essa pergunta menos pessoal, quais são os prós e os contras de cada opção?

permissions
  • 2 respostas
  • 52 Views
Martin Hope
jsx97
Asked: 2025-03-16 21:02:55 +0800 CST

Variáveis ​​em arquivos de configuração zsh

  • 4

Digamos que sua configuração zsh inclui as seguintes linhas para Perl:

PATH="/path/to/your/home/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/path/to/your/home/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/path/to/your/home/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/path/to/your/home/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/path/to/your/home/perl5"; export PERL_MM_OPT;

Os arquivos de configuração do zsh não são scripts, então não é possível, se entendi corretamente, usar variáveis ​​regulares do estilo bash neles.

Mas talvez seja possível, de alguma forma, ter uma variável para a /path/to/your/home/perl5/parte, de modo que seja mais fácil alterá-la para todas as cinco linhas?

zsh
  • 1 respostas
  • 35 Views
Martin Hope
Arch Stanton
Asked: 2025-03-16 18:52:43 +0800 CST

O que os programas usam para ler seu ambiente?

  • 7

Estou no Fedora, onde todos os shells pré-instalados aparentemente suportam bashisms: bash --posixdoes, e até mesmo sh. Ainda assim, quando usei esta função ,

pathprepend () {
    if [[ ":$PATH:" != *":$1:"* ]]; then
        PATH="$1${PATH:+":$PATH"}"
    fi
}

para adicionar um diretório a PATHpartir de ~/.profile, o Git não o pegou. Note que echo $PATHna sessão bash da qual eu estava usando o Git listou meu diretório, notei que só porque eu uso diff-highlight, symlinked naquele diretório, e depois que comecei a usar a pathprependfunção acima o Git reclamou que diff-highlightestava faltando. Depois de restaurar uma PATHconfiguração compatível com POSIX, ele voltou a funcionar normalmente.

Isso me deixou pensando o que os programas usam para ler seu ambiente. Cada um deles vem com seu próprio mecanismo para fazer isso? Eles deixam o trabalho para algum shell ou biblioteca do sistema?


Editar

@Bodo, é isso que eu costumava fazer: em ~/.profile,

pathprepend () {
    if [[ ":$PATH:" != *":$1:"* ]]; then
        PATH="$1${PATH:+":$PATH"}"
    fi
}

pathprepend "$HOME/.local/bin"

Por "compatível com POSIX" quero dizer sem nenhuma bashism. Isto é o que tenho agora em ~/.profile:

pathprepend () {
  case ":$PATH:" in
    *":$1:"*)
      :;;
    *)
      PATH="$1${PATH:+":$PATH"}";;
  esac
}

pathprepend "$HOME/.local/bin"

Em ambos os casos ~/.profileé proveniente de ~/.bash_profile, que contém

# Load the configuration for login sessions of any shell
if [[ -f "$HOME/.profile" ]]; then
  source "$HOME/.profile"
else
  echo >&2 "$HOME/.bash_profile: $HOME/.profile not found"
fi

# Load the configuration for interactive non-login Bash sessions
case "$-" in *i*)
  if [[ -f "$HOME/.bashrc" ]]; then
    source "$HOME/.bashrc"
  else
    echo >&2 "$HOME/.bash_profile: $HOME/.bashrc not found"
  fi;;
esac

Não fiz isso export PATHporque Gordon Davisson explica na resposta da qual copiei a função que " PATHjá deveria estar marcado como exportado, então não é necessário reexportar". Na verdade, ainda não fiz, exportmas com a caseversão de pathprependtudo funciona bem. A propósito, qual é o processo pai do processo Git, é o processo Bash do qual eu uso git?

shell-script
  • 1 respostas
  • 878 Views
Martin Hope
jsx97
Asked: 2025-03-16 08:53:41 +0800 CST

Perl: O módulo está instalado, mas não funciona

  • 5

Lembro que instalei o Perl::Rename usando cpan -i File::Rename, e de fato tenho os executáveis $HOME/perl5/bin​​with renamee unsafe-renamelá.

Mas quando tento usar rename,

# Expected: Renames FooBar.txt to Foo_Bar.txt
# It worked for me in the past
rename 's/\s/_/' *.txt

...há um erro:

Can't locate File/Rename.pm in @INC (you may need to install the File::Rename module) (@INC contains: /Library/Perl/5.34/darwin-thread-multi-2level /Library/Perl/5.34 /Network/Library/Perl/5.34/darwin-thread-multi-2level /Network/Library/Perl/5.34 /Library/Perl/Updates/5.34.1 /System/Library/Perl/5.34/darwin-thread-multi-2level /System/Library/Perl/5.34 /System/Library/Perl/Extras/5.34/darwin-thread-multi-2level /System/Library/Perl/Extras/5.34) at ./rename line 4.
BEGIN failed--compilation aborted at ./rename line 4.

Então tentei reinstalar File::Rename, usando o mesmo comando, mas então aparece outra mensagem de erro, uma bem longa. Aqui está uma parte do finalzinho:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ERROR: Can't create '/Library/Perl/5.34/File'
mkdir /Library/Perl/5.34/File: Permission denied at /System/Library/Perl/5.34/ExtUtils/Install.pm line 470.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 at -e line 1.
make: *** [pure_site_install] Error 13
  RMBARKER/File-Rename-2.02.tar.gz
  /usr/bin/make install  -- NOT OK

O que está acontecendo aqui?

O Perl em si é o que vem com o macOS. Eu não o instalei.

perl
  • 1 respostas
  • 51 Views
Martin Hope
metablaster
Asked: 2025-03-16 05:58:55 +0800 CST

Remova espaços e numeração na lista de palavras com sed

  • 5

Tenho um arquivo com o seguinte conteúdo de exemplo:

  2 jordyt
  2 dawder
  2 LOL12345
  2 2251084185
  2 123456789
  1 canada
  1 buddy123
  1 bagdad
  1 baba01
  1 124050
  1 123windi
  1 123456789m
  1 123321

O objetivo é remover espaços e números no início para que apenas as senhas permaneçam, assim:

jordyt
dawder
LOL12345
2251084185
123456789
canada
buddy123
bagdad
baba01
124050
123windi
123456789m
123321

Usei este comando, mas não está funcionando como eu queria:

cat file.txt | sed 's/^\s+\d+\s+//g'

Não precisa ser assim sedse houver uma abordagem melhor, o desempenho do processamento é importante porque tenho gigabytes de arquivos.

E a propósito, por que meu comando não está funcionando?

sed
  • 1 respostas
  • 43 Views
Martin Hope
Roberto
Asked: 2025-03-16 05:14:32 +0800 CST

Sed apaga tudo depois de uma palavra

  • 7

Sou novo no sed, tenho uma string

lightdm --session-child 14 21

os dois números podem mudar e eu removeria tudo depois do lightdm

Eu tentei de várias maneiras, mas nenhuma funcionou

sed 's/ --session-child*//'
sed 's/\ --session-child*//'
sed 's/ --session-child*$//'

e outros, mas nenhum funcionou. Onde está o erro?

sed
  • 1 respostas
  • 214 Views
Martin Hope
user2661923
Asked: 2025-03-16 02:33:47 +0800 CST

Compreendendo o processo apt-get build-dep

  • 6

Adendo adicionado ao final desta pergunta publicada para responder à resposta de Stephen Kitt.


Publicação cruzada: não é uma boa ideia postar no fórum asymptote (sourceforge).

Nesta postagem, descrevo experimentos que fiz tentando executar o apt-get build-depcomando e também executando o apt-updatecomando. Gostaria de entender o que está causando esses erros e se (usando o código-fonte extraído, como está) há uma solução.

No Linux Mint 22, instalei o VirtualBox 7 e criei um convidado Linux Mint 22, para experimentação. No convidado, primeiro instalei o TexLive e, em seguida, instalei com sucesso o Asymptote 3.00, um plug-in de látex, a partir do seu código-fonte. Para fazer isso, tive que instalar primeiro os seguintes pacotes:

freeglut, cmake, libx11-dev, bison, flex, libgl1-mesa-dev, libglu1-mesa-dev  zlib1g-dev

Após esse experimento bem-sucedido, restaurei o snapshot do VirtualBox tirado logo após instalar o TexLive e extrair o código-fonte do Asymptote 3.00. Como um segundo experimento, tentei então encurtar o processo. Fui avisado de que posso deixar uma única instalação lidar com as dependências, por meio dos seguintes comandos:

apt-get build-dep asymptote 
./configure
make all
make install

Com base na pesquisa preliminar, sudo xedatualizei \etc\apt\sources.list com a seguinte linha:

deb-src file:/home/steve/Downloads/asymptote-3.00 unstable main contrib 

Em seguida, naveguei para /home/steve/Downloads/asymptote-3.00 e executei sudo apt-get build-dep asymptote. Isso falhou com a mensagem:

$ sudo apt-get build-dep asymptote
Reading package lists... Done
E: You must put some 'deb-src' URIs in your sources.list

Para investigar, executei então sudo apt update, o que resultou

Get:1 file:/home/steve/Downloads/asymptote-3.00 unstable InRelease
Ign:1 file:/home/steve/Downloads/asymptote-3.00 unstable InRelease
Get:2 file:/home/steve/Downloads/asymptote-3.00 unstable Release
Err:2 file:/home/steve/Downloads/asymptote-3.00 unstable Release
File not found - /home/steve/Downloads/asymptote-3.00/dists/unstable/Release (2: No such file or directory)
...

Com base no apt updaterelatório acima, tentei novamente sudo apt-get build-dep asymptote, após substituir a linha anexada por:

deb-src file:/home/steve/Downloads/asymptote-3.00

Isso resultou

$ sudo apt-get build-dep asymptote
E: Malformed entry 8 in list file /etc/apt/sources.list (Suite)
E: The list of sources could not be read.
E: Malformed entry 8 in list file /etc/apt/sources.list (Suite)
E: The list of sources could not be read.

Investigando novamente, executei novamente sudo apt update, o que resultou

$ sudo apt update
E: Malformed entry 8 in list file /etc/apt/sources.list (Suite)
E: The list of sources could not be read.

Investigando mais a fundo, a lista completa de subdiretórios do diretório asymptote 3.0 é:

backports           examples                patches                         
base                gc                      prc             
build-scripts       gl-matrix-2.4.0-pruned  tests           
cmake-preset-files  GUI                     thirdparty_impl 
cmake-scripts       libatomic_ops           tinyexr         
cudareflect         LspCpp                  webgl           
cxxtests            misc                    windows         
doc 

Adendo
I: testei e verifiquei a resposta de Stephen Kitt.

Depois de ler sua resposta e recarregar o instantâneo (anterior) do VirtualBox, descobri que as entradas debrather than já estavam incluídas em .deb-src/etc/apt/sources.list.d/official-source-repositories.list

Eu já havia determinado que, nessa situação, o apt-get build-dep asymptotecomando não funcionaria. Era necessário adicionar as deb-srcentradas em \etc\apt\sources.list. Conforme sua resposta, adicionei as cinco deb-srcentradas em \etc\apt\sources.list.

Então, eu executei menu : software-sources : enable-source-code-repositories : update-cache.

Então eu executei apt update.

Então, naveguei até o diretório do asymptotecódigo extraído e executei o apt-get build-dep asymptotecomando.

Presumivelmente, isso funcionou bem (ou seja, abortei após 10 minutos porque o processamento do VirtualBox é lento e o processo estava adicionando mais de 1 GB de empacotamento).

Com base em um comentário na resposta de Stephen Kitt, executei novamente todo o experimento, com uma exceção: em vez de adicionar todas as 5 deb-srclinhas \etc\apt\sources.list, adicionei apenas a deb-src http://archive.ubuntu.com/ubuntu noble main restricted universe multiverselinha.

Isso também pareceu funcionar perfeitamente. Novamente, abortei a execução do VirtualBox após 10 minutos, pelo mesmo motivo.

No geral, esta foi uma ótima experiência de aprendizado para mim.

linux-mint
  • 1 respostas
  • 42 Views
Martin Hope
Arseni Mourzenko
Asked: 2025-03-16 01:23:56 +0800 CST

Não é possível inicializar o Windows desde a atualização do apt no Debian instável

  • 5

Recentemente, executei apt upgradeo Debian Trixie/sid (versão 13, instável) e agora não consigo mais inicializar o Windows. Ele ainda é exibido no menu do grub (na verdade, ele foi removido durante a atualização, mas eu o adicionei de volta executando update-grub2), mas quando o seleciono, a tela fica preta com “GRUB” em todas as letras maiúsculas exibido no canto superior esquerdo e um cursor piscando perto dele. Parece que não consigo interagir com o console: quando pressiono teclas aleatórias, ou Esc, ou Ctrl+ C, nada acontece. Se eu pressionar Ctrl+ Alt+ Del, a máquina reinicia imediatamente.

O que posso fazer para descobrir o que está acontecendo?

Notas:

  • Observe o uso de sid.
  • Não houve mudanças recentes no sistema do lado do Windows. O problema apareceu imediatamente após apt upgrade.
  • Montei a partição do Windows a partir do Linux para verificar se ela ainda está lá. Ela está, e os arquivos não parecem ter sido afetados.
dual-boot
  • 1 respostas
  • 20 Views
Prev
Próximo

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